C#7以降、VB.NET 15以降では、アンダースコア_
を桁区切り文字として使用することができます。 桁区切り文字は、整数リテラルや実数リテラルに対して使うことができます。 特に2進数リテラルや実数リテラルなど、桁数が多くなりやすい数値リテラルでは、桁区切り文字を用いることで読みやすくすることができます。
一般的な数値の表記におけるカンマ,
とは異なり、桁区切り文字_
は3桁や4桁ごとに限らず、任意の位置に入れることができます。 また、場合によっては連続させることもできます。 0x
などのプレフィックスと数値の間には桁区切り文字を入れることができますが、数値とサフィックスの間に入れることはできません。
桁区切り文字'_'を使って数値リテラルを記述する C# 7.0
using System;
class Sample {
static void Main()
{
var i1 = 0b0000_1111_0000_1111; // 2進数リテラルと桁区切り文字
var i2 = 1_2__346_5789; // 任意の桁数ごとに区切りを入れたり、区切りを連続させることもできる
var i3 = 0b_0_01_001___1; // プレフィックス(0b)と数値の間にも区切りを入れることができる
var u = 0x_1_0_0u; // 数値とサフィックス(u)の間には区切りを入れることはできない
var pi = 3.141_592f; // 実数リテラル(float)と桁区切り文字
var c = 2.99_792_458e+8; // 実数リテラル(double, 指数形式)と桁区切り文字
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(i3);
Console.WriteLine(u);
Console.WriteLine(pi);
Console.WriteLine(c);
}
}
実行結果
3855 123465789 19 256 3.141592 299792458