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:

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.252.201