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

import sys
print sys.version

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

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

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

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


当前回答

.NET版本通过注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\探索子程序并查看每个版本。键为'Full'的是系统上的版本。

https://support.microsoft.com/en-us/kb/318785 https://msdn.microsoft.com/en-us/library/hh925568 (v = vs.110) . aspx

.NET版本通过Visual Studio

Help ->关于Microsoft Visual Studio -> . net版本在右上角指定。

据我所知,Visual studio在操作系统中使用。net框架。

Visual Studio中项目的目标.NET框架版本可以通过项目属性->应用程序->目标框架来修改

通过dll

如果你知道。net Framework目录 例如C:\Windows\ Microsoft.NET \ Framework64 \ v4.0.30319

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

c#版本

帮助->关于Microsoft Visual Studio

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

Visual Studio(微软)将c#命名为Visual c#。

https://msdn.microsoft.com/en-us/library/hh156499.aspx

c# 6, Visual Studio .NET 2015 当前版本,见下文

其他回答

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

要获得框架的版本-查看一个主要程序集的版本。

 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

从开发人员命令提示符(Visual Studio > View > Terminal)输入:

csc -langversion:?

将显示所有支持的c#版本,包括默认版本:

1
2
3
4
5
6
7.0 (default)
7.1
7.2
7.3 (latest)

感谢@fortesl和这个答案

我使用的是VS 2019,它不容易告诉你你正在使用的c#版本。我正在使用。net Core 3.0,在那种环境中使用c# 8的VS 2019。但是"csc -langversion:?"说明了这一点:

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

不确定csc -version正在识别什么:

D:\>csc --version
Microsoft (R) Visual C# Compiler version 3.4.0-beta1-19462-14 (2f21c63b)
Copyright (C) Microsoft Corporation. All rights reserved.

目前的答案已经过时了。您应该能够使用#error version(在项目中任何c#文件的顶部,或几乎在代码的任何地方)。编译器以一种特殊的方式处理这个错误,并报告一个编译器错误CS8304,表示语言版本,也表示编译器版本。CS8304的消息如下所示:

编译器版本:'3.7.0-3.20312.3 (ec484126)'。语言版本:6。