- Mastering Visual Studio 2017
- Kunal Chowdhury
- 277字
- 2021-07-15 17:26:37
The new digit separators
Digit separator is a new feature in C# 7.0. You can use _ (underscore) inside numeric literals as a digit separator. The purpose of it is none other than improving the readability of the value in code.
You can put a digit separator (_) wherever you want between digits. You can have multiple underscores (____) too. They will have no effect on the value. This is shown in the following code snippet:
var decimalValue1 = 1_50_000; // better than 150000 var decimalValue2 = 25_91_50_000; // better than 259150000 // you can use multiple underscores too var decimalValue3 = 25_91__50___000; // better than 259150000
You can also add digit separators to a binary literal and/or hexadecimal literals:
var binaryValue = 0b1010_1011_1100_1101_1110_1111; var hexadecimalValue = 0xAB_C_0_D_EF_578;
Please note that the following conventions are invalid:
- _1_50_000, as it starts with _
- 1_50_000_ or 1_50_000.25_, as it ends with _
- 5000_._25, as the decimal point can't be associated with _
- _0b1100, 0b_1100, or 0_b_1100, as 0b should be prefixed with a valid binary number
- _0xFEB1, 0x_FEB1, or 0_x_FEB1, as 0x should be prefixed with a valid hexadecimal value
Here is the complete code for you to try:
class Program { static void Main(string[] args) { var decimalValue1 = 1_50_000; // better than 150000 var decimalValue2 = 25_91_50_000; // better than 259150000 // you can use multiple underscores too var decimalValue3 = 25_91__50___000; Console.WriteLine("Decimal Value 1: " + decimalValue1); Console.WriteLine("Decimal Value 2: " + decimalValue2); Console.WriteLine("Decimal Value 3: " + decimalValue3); var binaryValue = 0b1010_1011_1100_1101_1110_1111; var hexadecimalValue = 0xAB_C_0_D_EF_578; Console.WriteLine("Binary Value: " + binaryValue); Console.WriteLine("Hexadecimal Value: " + hexadecimalValue); } }
Here's the output of the preceding code:

推薦閱讀
- Data Visualization with D3 4.x Cookbook(Second Edition)
- Google Flutter Mobile Development Quick Start Guide
- Spring技術內幕:深入解析Spring架構與設計
- Building Cross-Platform Desktop Applications with Electron
- Python完全自學教程
- 從0到1:Python數據分析
- Service Mesh實戰:基于Linkerd和Kubernetes的微服務實踐
- PrimeFaces Blueprints
- Spark技術內幕:深入解析Spark內核架構設計與實現原理
- RESTful Web API Design with Node.js(Second Edition)
- Java Web入門很輕松(微課超值版)
- Python全棧開發:數據分析
- 少年小魚的魔法之旅:神奇的Python
- Swift 2 Blueprints
- PhoneGap 3.x Mobile Application Development Hotshot