如何查找正在使用的C#和.NET/Mono版本?

Gho*_*r21 2 .net c# mono

您可以使用System.Environment.Version获取CLR的版本; 你如何获得当前使用的C#版本和.NET或Mono框架?

编辑:我不是问如何找到你是使用Mono还是.NET.(我的问题的第一个版本确实问过这个问题,但是当我在其他地方看到这个问题时,我几乎立即将其删除了.)这里的问题是(1)如何弄清楚你正在使用的C#版本,(2)您拥有的.NET版本(与CLR的版本相反,这不是同一件事).

Pho*_*cUK 6

检查您是否以单声道运行:

public static bool IsRunningOnMono ()
{
    return Type.GetType ("Mono.Runtime") != null;
}
Run Code Online (Sandbox Code Playgroud)

检查单声道版本:

Type type = Type.GetType("Mono.Runtime");
if (type != null)
{                                          
    MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); 
    if (dispalayName != null)                   
        Console.WriteLine(dispalayName.Invoke(null, null)); 
}
Run Code Online (Sandbox Code Playgroud)

如果你不在Mono,那么你仍然使用 System.Environment.Version