C#
 Computer >> コンピューター >  >> プログラミング >> C#

C# 7.0の新機能解説:バイナリリテラルと数字区切り文字(アンダースコア)の使い方

バイナリリテラルとは

C# 7.0より前のバージョンでは、変数に代入できる数値リテラルは10進数と16進数のみでした。C# 7.0ではバイナリリテラルが新たに導入され、2進数の値を直接変数に代入できるようになりました。

バイナリリテラルを使用するには、数値の先頭に「0b」という接頭辞を付けるだけです。ビットフラグの管理やビット演算を含むコードでは、2進数で記述した方が意図が伝わりやすく、可読性が大きく向上します。

数字区切り文字(Digit Separator)とは

数字区切り文字は、1つのアンダースコア(_)で表されます。この区切り文字は、任意の数値リテラルの中に自由に挿入でき、桁数の多い数値を読みやすくするための機能です。

例えば、金額やIDのように桁数が多い数値を扱う場合、適切な位置にアンダースコアを入れることで、桁の数え間違いを防ぎ、コードの見通しを良くできます。

バイナリリテラルのサンプルコード

class Program
{
    public static void Main()
    {
        var bn = 0b1000001;
        System.Console.WriteLine(bn.GetType());
        System.Console.WriteLine(Convert.ToChar(bn));
        Console.ReadLine();
    }
}

実行結果

System.Int32
A

この例では、2進数の「1000001」は10進数の65に相当し、ASCIIコードでは文字「A」を表します。また、varによる型推論の結果、このリテラルはSystem.Int32(int型)として扱われています。

数字区切り文字のサンプルコード

class Program
{
    public static void Main()
    {
        long Salary = 1_00_00_00_00_000;
        System.Console.WriteLine(Salary.GetType());
        System.Console.WriteLine(Salary);
        Console.ReadLine();
    }
}

実行結果

System.Int64
100000000000

この例では、アンダースコアによって大きな数値が区切られているため、桁数をひと目で把握できます。変数Salaryはlong型(System.Int64)として宣言されており、実際の値は100000000000(1000億)です。

まとめ

C# 7.0で追加されたバイナリリテラルと数字区切り文字は、どちらもコードの可読性を高めるための小さながら有用な機能です。ビット操作を行う処理ではバイナリリテラルを、大きな数値を扱う場面では数字区切り文字を活用することで、バグの防止と保守性の向上につながります。

  1. Java 9モジュールシステム(JPMS)のメリット・デメリットを徹底解説

    Java 9における最大の変更点はモジュールシステム(Java Platform Module System:JPMS)の導入です。この仕組みにより、アプリケーションが必要とするモジュールとAPIだけを読み込んだモジュラJVMを実行できるようになり、利用可能なメモリが少ないデバイス上でもJavaアプリケーションを動作させることが可能になりました。モジュールは「module-info.java」という記述子ファイルで定義します。基本的な構文は以下の通りです。module モジュール名 {   requires 依存するモジュール名;   

  2. Windows 11でシステムファイルが破損したときの原因と修復方法を徹底解説

    Windows 11パソコンの健全なシステムファイルは、Windows本体やOfficeアプリ、ゲームなどが正常に動作するために欠かせないものです。Windows 11の起動やシャットダウンが遅くなった、ブルースクリーンエラーで頻繁にクラッシュする、PCが頻繁にフリーズする、最新のWindowsアップデートが適用できない——これらはすべてシステムファイルの破損が原因である可能性があります。この記事では、破損したシステムファイルを修復する方法を詳しく解説し、Windows 11を最適な状態で動作させる方法をご紹介します。 システムファイルの破損とは何か? パソコン上のすべてのシステムファイルに