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

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:

主站蜘蛛池模板: 蓬安县| 苍溪县| 南郑县| 隆化县| 海晏县| 习水县| 莲花县| 克什克腾旗| 洛隆县| 缙云县| 彩票| 和平县| 萍乡市| 达尔| 贵溪市| 都江堰市| 林周县| 濉溪县| 凤庆县| 永嘉县| 宜宾市| 资阳市| 正镶白旗| 襄垣县| 沙洋县| 新龙县| 安宁市| 平遥县| 邵武市| 西华县| 神农架林区| 和平县| 德保县| 喀喇| 施秉县| 巴南区| 德阳市| 仁布县| 调兵山市| 莱芜市| 蕲春县|