より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Versionクラスのコンストラクタに文字列が渡せる

docs.microsoft.com

Windowsのファイルバージョンといえば、1.2.3.4という4つのセクションに分かれたバージョン体系ですので、であればC#のVersionクラスもそれしか対応していないのかなと思っていたのですが、2.0という文字列でもVersionクラスはよしなに処理してくれるようです。

using System;
                    
public class Program
{
    public static void Main()
    {
        var version = new Version("2.0");
        Console.WriteLine("major=" + version.Major + "minor=" + version.Minor + "revision=" + version.Revision + "build=" + version.Build);
    }
}

f:id:rimever:20210617201803p:plain

比較も簡単です。

using System;
                    
public class Program
{
    public static void Main()
    {
        var v_2_0 = new Version("2.0");
        var v_1_4 = new Version("1.4");
        var v_1_12 = new Version("1.12");
        Console.WriteLine(v_1_4 < v_2_0);
        Console.WriteLine(v_1_4 < v_1_12);
    }
}

f:id:rimever:20210617202026p:plain

これがSystemライブラリで利用できるのだから、C#のライブラリは本当に洗練されているなと感じますね。