我想知道我使用的是哪个版本的c#。 如果我要使用python,我会从命令行执行类似python -V的操作,或者键入:

import sys
print sys.version

在PHP中,我会这样做:phpinfo();java中:java -version

但是我不知道如何在c#中实现这一点。

这个问题并没有回答这个问题,尽管它的名字表明它应该回答这个问题。

我知道这取决于。net框架,但是否有一种编程方式来确定我的框架?我的意思是不需要进入目录并检查。net文件夹的名称。


当前回答

这里概述了. net框架和编译器版本是如何关联、设置和修改的。每个项目都有一个。net框架的目标版本,例如版本3。X或2。x。. net框架包含运行时类型和组件。

Visual Studio版本安装和. net框架版本决定了可以使用的兼容c#语言版本和编译器选项。Visual Studio项目中使用的默认c#版本和选项是与所使用的. net框架版本兼容的最新语言版本。

在Visual Studio 2011中查看或更新项目中的框架或c#语言:

right click the project within Solution Explorer and select Properties select 'Application' in the left navigation pane. Under Target framework: is the .NET framework version. Select the down arrow to see all available framework versions. select 'Build' in the left navigation pane. In the 'General' section of the pane next to 'Language Version:' is the c# compiler language version being used, for example 'default' or c# 5.0 select the down arrow in the 'Language Version:" dropdown to see all available language versions. If 'default' is the c# version being used, the latest compatible c# language version will be used.

要查看'default'的确切编译器语言版本,请在已安装的Visual Studio版本的开发人员命令提示符中输入以下内容。例如,在Windows开始图标中选择图标:“VS2011的开发人员命令提示符”,然后输入:

csc -langversion默认:

微软(R) Visual c#编译器版本4.7.3062.0的c# 5

其他回答

在visual studio 2022中,我们可以在高级选项卡中查看项目属性

虽然这不是直接回答你的问题,我把这个放在这里,因为谷歌在我搜索这个信息时首先把这个页面放在我的搜索中。

如果您正在使用Visual Studio,您可以右键单击您的项目->属性->构建->高级 这应该列出可用的版本以及您的项目正在使用的版本。

默认情况下,基于项目的目标框架选择语言版本。

每个项目可能使用不同版本的。net框架,最好的c#编译器将通过查看目标框架默认选择。在visual studio中,UI不允许用户更改语言版本,但是,我们可以通过添加新的属性组编辑项目文件来更改语言版本。但这可能会导致现有代码的编译/运行时问题。

<PropertyGroup>  
<LangVersion>8.0</LangVersion>  
</PropertyGroup>

我可以从微软文档中看到以下内容。

编译器根据以下规则确定默认值:

Target framework  version     C# language version default
.NET Core           3.x         C# 8.0
.NET Core           2.x         C# 7.3
.NET Standard       2.1         C# 8.0
.NET Standard       2.0         C# 7.3
.NET Standard       1.x         C# 7.3
.NET Framework      all         C# 7.3

要从代码中获得c#版本,请使用微软文档中的这段代码来获得. net框架版本,然后使用其他人都提到的表进行匹配。你可以在字典或其他东西中编写框架到c#版本的映射,让你的函数返回c#版本。如果你有。net Framework >= 4.5。

using System;
using Microsoft.Win32;

public class GetDotNetVersion
{
   public static void Main()
   {
      Get45PlusFromRegistry();
   }

   private static void Get45PlusFromRegistry()
   {
      const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";

      using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
      {
        if (ndpKey != null && ndpKey.GetValue("Release") != null) {
            Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int) ndpKey.GetValue("Release"))}");
        }
         else {
            Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
         } 
      }

      // Checking the version using >= enables forward compatibility.
      string CheckFor45PlusVersion(int releaseKey)
      {
         if (releaseKey >= 528040)
            return "4.8 or later";
         if (releaseKey >= 461808)
            return "4.7.2";
         if (releaseKey >= 461308)
            return "4.7.1";
         if (releaseKey >= 460798)
            return "4.7";
         if (releaseKey >= 394802)
            return "4.6.2";
         if (releaseKey >= 394254)
            return "4.6.1";      
         if (releaseKey >= 393295)
            return "4.6";      
         if (releaseKey >= 379893)
            return "4.5.2";      
         if (releaseKey >= 378675)
            return "4.5.1";      
         if (releaseKey >= 378389)
            return "4.5";      
         // This code should never execute. A non-null release key should mean
         // that 4.5 or later is installed.
         return "No 4.5 or later version detected";
      }
   }
}   
// This example displays output like the following:
//       .NET Framework Version: 4.6.1

这里概述了. net框架和编译器版本是如何关联、设置和修改的。每个项目都有一个。net框架的目标版本,例如版本3。X或2。x。. net框架包含运行时类型和组件。

Visual Studio版本安装和. net框架版本决定了可以使用的兼容c#语言版本和编译器选项。Visual Studio项目中使用的默认c#版本和选项是与所使用的. net框架版本兼容的最新语言版本。

在Visual Studio 2011中查看或更新项目中的框架或c#语言:

right click the project within Solution Explorer and select Properties select 'Application' in the left navigation pane. Under Target framework: is the .NET framework version. Select the down arrow to see all available framework versions. select 'Build' in the left navigation pane. In the 'General' section of the pane next to 'Language Version:' is the c# compiler language version being used, for example 'default' or c# 5.0 select the down arrow in the 'Language Version:" dropdown to see all available language versions. If 'default' is the c# version being used, the latest compatible c# language version will be used.

要查看'default'的确切编译器语言版本,请在已安装的Visual Studio版本的开发人员命令提示符中输入以下内容。例如,在Windows开始图标中选择图标:“VS2011的开发人员命令提示符”,然后输入:

csc -langversion默认:

微软(R) Visual c#编译器版本4.7.3062.0的c# 5