Unity4/C# UnityEditorの共通言語ラインタイム(CLR)のバージョンが知りたい

  • 7
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

UnityEditorの共通言語ラインタイム(CLR)のバージョンが知りたい

以下のコードで、ビルド時の「共通言語ランタイム(CLR)のバージョン」が取得できる。

Debug.Log(System.Environment.Version);

【実行結果】

2.0 (Visual Studio built mono)
UnityEngine.Debug:Log(Object)

また、以下のコードで「詳細な共通言語ランタイム(CLR)のバージョン(マイナーバージョンも含む)」が取得できる。

var type = Type.GetType("Mono.Runtime");
if (type != null) {
    var dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
    if (dispalayName != null)
    Debug.Log(dispalayName.Invoke(null, null));
}

【実行結果】

2.0.50727.1433
UnityEngine.Debug:Log(Object)

じゃ、今使ってるUnityのC#のバージョンはどうやって調べるのか、って話だけど、MonoDevelopを起動し、Help - About で表示されるダイアログで「Monoのバージョン」を確認し、「Mono Wikipedia」で「Monoのバージョン」を探し、対応する表から「C#のバージョン」を確認することができる。

Picture 2016-02-04 22_26_56.png

MonoDevelopのバージョンが「4.0.1」なので、C#は「6.0系」です。

じゃ「C#のバージョンとCLRの関係はどうなってるの」って話だけど、「C#のバージョン=C#で拡張された言語機能」が、どのCLRで動くかを示している。詳細は「C#の言語バージョンと.NET Frameworkバージョン」を参照してください。