官术网_书友最值得收藏!

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:

主站蜘蛛池模板: 澳门| 澳门| 鹿邑县| 谢通门县| 梁河县| 崇礼县| 无为县| 瑞昌市| 宣恩县| 武宁县| 台东市| 台北市| 阳城县| 宜兰县| 霍山县| 合水县| 平远县| 淮北市| 于田县| 桂阳县| 常熟市| 靖远县| 农安县| 荥经县| 遂溪县| 浮梁县| 松桃| 尉氏县| 昌吉市| 行唐县| 秭归县| 永寿县| 应用必备| 内黄县| 河南省| 彭泽县| 高要市| 兴文县| 双城市| 三穗县| 永定县|