
上QQ阅读APP看书,第一时间看更新
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:
