2016年9月4日日曜日

C#7.0の新機能:2進数

VisualStudio15で追加される予定のC#7.0 をVisualStudio15 Preview4で確認してみました。

C#7.0 では、数値を2進数で、記載できるようになるみたいです。


//数値
var val1 = 1;
var val2 = 0x02;
var val3 = 0b011;
Console.WriteLine("{0},{1},{2}", val1, val2, val3);

これを今までの VisualStudio2015 で記載すると、こんな風に叱られます。

エラー CS0103 現在のコンテキストに 'b011' という名前は存在しません。

これをVisualStudio15Preview版で試してみると問題なくビルドが通ります。
結果は次のようになります。というか、そのままです。

1,2,3

余り2進数として値を見たいことは少ないかもしれませんが、
EnumにFlagsAttributeをつけて利用することはあるかもしれないです。

    [FlagsAttribute]
    public enum Sports
    {
        BaseBall   = 0b0001,
        FootBall   = 0b0010,
        Basketball = 0b0100,
    }
    class Sample
    {
        static void Main()
        {
            var sports = Sports.BaseBall | Sports.Basketball;
            Console.WriteLine("{0}", sports);
        }
    }

結果

BaseBall, Basketball,

無事に、Enum値がカンマ区切りで表示されました。めでたしめでたし。

0 件のコメント:

コメントを投稿