- 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:

推薦閱讀
- UI圖標創意設計
- Vue.js設計與實現
- GAE編程指南
- Debian 7:System Administration Best Practices
- Interactive Data Visualization with Python
- 編程卓越之道(卷3):軟件工程化
- Mastering Ember.js
- Mastering Concurrency in Go
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- 編寫高質量代碼:改善Python程序的91個建議
- OpenShift在企業中的實踐:PaaS DevOps微服務(第2版)
- 從Java到Web程序設計教程
- Learning OpenStack Networking(Neutron)(Second Edition)
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- Developing SSRS Reports for Dynamics AX