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

import sys
print sys.version

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

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

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

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


当前回答

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

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

其他回答

这里有一个奇怪的技巧,可以快速找到你正在使用的c#版本。编辑项目中的任何。cs文件,并在命名空间语句的末尾添加一个分号:

命名空间Whatever ->命名空间Whatever;

命名空间工作将以红色下划线显示;将鼠标悬停在它上面,它会显示如下内容: “CS8370:文件范围的命名空间在c#7.3中不可用。请使用10.0或更高版本的语言。”

在VS2022上使用。net Framework项目进行测试。如果使用的是。net或。net Core项目,那么这个特性可以很好地工作。

找到c#版本的有用提示:

要了解当前使用的语言版本,请在代码中添加#error version(区分大小写)。这使得编译器产生 诊断信息CS8304,带有包含编译器版本的消息 正在使用和当前选择的语言版本。

来自微软文档中的c#语言版本控制。

您可以在代码中的任何地方删除#error version。它将生成一个错误,因此您需要在使用它之后删除它。错误给出了编译器和语言版本的详细信息,例如:

Error   CS8304  Compiler version: '3.7.0-6.20459.4 (7ee7c540)'. Language version: 8.0.

至少在VS 2019中,你不需要为#error version编译代码来给出版本号。只要在代码中将鼠标移到它上,就会出现与编译代码时看到的相同的错误细节。

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

每个项目可能使用不同版本的。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

.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 当前版本,见下文

这取决于你使用的。net框架。请看Jon Skeet关于版本的回答。

以下是他的回答的简短版本。

c# 1.0与。net 1.0一起发布 c# 1.2(很奇怪);发布 .NET 1.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# 10.0与NET 6.0一起发布 c# 11.0随NET 7.0发布