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

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:

主站蜘蛛池模板: 陆河县| 平安县| 永宁县| 铁力市| 黎城县| 沁源县| 勐海县| 海晏县| 新乡县| 曲沃县| 望城县| 万载县| 城步| 南康市| 襄樊市| 临猗县| 霍林郭勒市| 渑池县| 肥西县| 宜兴市| 许昌县| 武平县| 上思县| 千阳县| 图木舒克市| 视频| 乌拉特后旗| 潜山县| 平昌县| 普洱| 平泉县| 遂平县| 巴中市| 山丹县| 浦东新区| 武强县| 大同市| 札达县| 潼关县| 兴安县| 襄垣县|