我使用的是哪个版本的C#

我使用的是哪个版本的C#,c#,version,C#,Version,我想知道我使用的是哪个版本的C。 如果我要使用python,我会从命令行执行类似于python-V的操作,或者键入: import sys print sys.version 在PHP中,我会这样做:phpinfo()在java中:java-version 但我无法找到如何在C#中实现这一点 没有回答,尽管名字暗示它应该回答 我知道这取决于.NET框架,但是有没有一种程序化的方法来确定我的框架?我的意思是不去目录并检查.NET文件夹的名称。这取决于您使用的.NET Framework。检查版本

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

import sys
print sys.version
在PHP中,我会这样做:
phpinfo()在java中:
java-version

但我无法找到如何在C#中实现这一点

没有回答,尽管名字暗示它应该回答

我知道这取决于.NET框架,但是有没有一种程序化的方法来确定我的框架?我的意思是不去目录并检查.NET文件夹的名称。

这取决于您使用的
.NET Framework
。检查版本

以下是他的答案的简短版本

C#1.0与.NET 1.0一起发布

C#1.2(很奇怪);释放 使用.NET1.1

C#2.0与.NET 2.0一起发布

C#3.0与.NET 3.5一起发布

C#4.0与.NET 4一起发布

C#5.0与.NET 4.5一起发布

C#6.0与.NET 4.6一起发布

C#7.0与.NET 4.6.2一起发布

C#7.3与.NET 4.7.2一起发布

C#8.0与NET Core 3.0一起发布

C#9.0与NET 5.0一起发布

您使用的C#版本完全取决于您使用的.Net版本。

如果您使用visual studio进行开发,则可以选择.net framework版本 与之相关的c#版本也相应地出现了

以下是C#已知的版本:

  • C#1.0.NET 1.0和VS2002一起发布(2002年1月)
  • C#1.2(很奇怪);与.NET1.1和VS2003一起发布(2003年4月)。在
    IEnumerator
    s上调用
    Dispose
    的第一个版本,它实现了
    IDisposable
    。其他一些小功能
  • C#2.0.NET 2.0和VS2005一起发布(2005年11月)。主要新特性:泛型、匿名方法、可空类型、迭代器块
  • C#3.0.NET 3.5和VS2008一起发布(2007年11月)。主要新功能:lambda表达式、扩展方法、表达式树、匿名类型、隐式类型(
    var
    ),查询表达式
  • C#4.0.NET 4和VS2010(2010年4月)一起发布。主要新功能:后期绑定(
    动态
    ),委托和接口通用差异,更多COM支持,命名参数和可选参数
  • C#5.0于2012年8月随.NET 4.5发布

参考

获取框架版本-查看一个主要组件的版本,即

Console.Write(typeof(string).Assembly.ImageRuntimeVersion);
获取C#编译器的版本有点困难,但您应该能够通过检查所使用的框架版本来猜测版本

如果您使用的是命令行编译器(csc.exe),则可以查看“帮助”以查看版本(此外,您还需要了解框架版本:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc /?
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1

要查看已安装的VC#编译器版本,请执行以下操作:

打开VisualStudio命令提示符,只需键入csc,然后按Enter键

您将看到如下内容:

Microsoft(R)Visual C#编译器版本4.0.30319.34209

适用于Microsoft(R).NET Framework 4.5

版权所有(C)微软公司。保留所有权利

备注:“CSC”代表“C Sharp Compiler”。实际上,使用此命令可以运行CSC.exe,这是一个位于“C:\Windows\Microsoft.NET\Framework\vX.X.XXX”中的可执行文件。有关CSC的更多信息,请访问注册表中的.NET版本 HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\浏览子项并查看每个版本。键为“Full”的版本是系统上的版本

通过Visual Studio的.NET版本 帮助->关于Microsoft Visual Studio->在右上角指定了.NET版本

据我目前所知,VisualStudio使用操作系统中的.NET框架

Visual Studio中项目的目标.NET Framework版本可以使用项目属性->应用程序->目标框架进行修改

通过dll 如果您知道.NET Framework目录 e、 g.C:\Windows\Microsoft.NET\Framework64\v4.0.30319

打开System.dll,右键单击->属性->详细信息选项卡

C版本 帮助->关于Microsoft Visual Studio

在已安装的产品列表中有Visual C#。在我的例子中是Visual C#2015

Visual Studio(Microsoft)以Visual C的名称发布C

C#6,Visual Studio.NET 2015
当前版本,请参见下面的

虽然这并不是直接回答您的问题,但我还是把它放在这里,因为当我在搜索这些信息时,谷歌在我的搜索中首先打开了这个页面

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


默认情况下,以下是Visual Studio C#编译器的相应版本:

  • Visual Studio 2015:C#6.0
  • Visual Studio 2013:C#5.0
  • Visual Studio 2012:C#5.0
  • VisualStudio2010:C#4.0
  • VisualStudio2008:C#3.0
  • VisualStudio2005:C#2.0
  • Visual Studio.NET 2003:C#1.2
  • Visual Studio.NET 2002:C#1.0
  • 您也可以修改版本,请按照以下步骤操作。

    打开“项目属性”窗口:
    对于Windows,您可以在命令/搜索程序行中运行dev,并为VS选择Developer命令提示符,然后只运行

    csc
    
    现在你可以进去了
    csc
    
    Microsoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
    Copyright (C) Microsoft Corporation. All rights reserved.   
    
    cd C:\Windows\Microsoft.NET\Framework\
    dir
    
    cd v4.0.30319
    
    csc
    
    Microsoft (R) Visual C# Compiler version 4.7.2556.0
    for C# 5
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    csc -langversion:?
    
    1
    2
    3
    4
    5
    6
    7.0 (default)
    7.1
    7.2
    7.3 (latest)
    
    D:\>csc -langversion:?
    Supported language versions:
    default
    1
    2
    3
    4
    5
    6
    7.0
    7.1
    7.2
    7.3
    8.0 (default)
    latestmajor
    preview
    latest
    
    D:\>csc --version
    Microsoft (R) Visual C# Compiler version 3.4.0-beta1-19462-14 (2f21c63b)
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    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
    
    <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
    
    Error   CS8304  Compiler version: '3.7.0-6.20459.4 (7ee7c540)'. Language version: 8.0.