- Mastering Visual Studio 2017
- Kunal Chowdhury
- 277字
- 2021-07-15 17:26:37
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:

推薦閱讀
- 工程軟件開(kāi)發(fā)技術(shù)基礎(chǔ)
- 深入淺出Spring Boot 2.x
- 認(rèn)識(shí)編程:以Python語(yǔ)言講透編程的本質(zhì)
- Rust Cookbook
- Practical Game Design
- 面向?qū)ο蟪绦蛟O(shè)計(jì)(Java版)
- Visual C#.NET程序設(shè)計(jì)
- Essential C++(中文版)
- Apache Solr PHP Integration
- SEO教程:搜索引擎優(yōu)化入門(mén)與進(jìn)階(第3版)
- R的極客理想:量化投資篇
- Bitcoin Essentials
- Scala編程(第4版)
- 系統(tǒng)分析師UML用例實(shí)戰(zhàn)
- 開(kāi)源網(wǎng)絡(luò)地圖可視化:基于Leaflet的在線地圖開(kāi)發(fā)