我想知道我使用的是哪个版本的c#。 如果我要使用python,我会从命令行执行类似python -V的操作,或者键入:
import sys
print sys.version
在PHP中,我会这样做:phpinfo();java中:java -version
但是我不知道如何在c#中实现这一点。
这个问题并没有回答这个问题,尽管它的名字表明它应该回答这个问题。
我知道这取决于。net框架,但是否有一种编程方式来确定我的框架?我的意思是不需要进入目录并检查。net文件夹的名称。
我想知道我使用的是哪个版本的c#。 如果我要使用python,我会从命令行执行类似python -V的操作,或者键入:
import sys
print sys.version
在PHP中,我会这样做:phpinfo();java中:java -version
但是我不知道如何在c#中实现这一点。
这个问题并没有回答这个问题,尽管它的名字表明它应该回答这个问题。
我知道这取决于。net框架,但是否有一种编程方式来确定我的框架?我的意思是不需要进入目录并检查。net文件夹的名称。
当前回答
虽然这不是直接回答你的问题,我把这个放在这里,因为谷歌在我搜索这个信息时首先把这个页面放在我的搜索中。
如果您正在使用Visual Studio,您可以右键单击您的项目->属性->构建->高级 这应该列出可用的版本以及您的项目正在使用的版本。
其他回答
在visual studio 2022中,我们可以在高级选项卡中查看项目属性
找到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编译代码来给出版本号。只要在代码中将鼠标移到它上,就会出现与编译代码时看到的相同的错误细节。
对于Windows,您在命令/搜索程序行中运行dev,并为vs选择开发人员命令提示符,然后您将运行
csc
现在你得到了类似于
Microsoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Copyright (C) Microsoft Corporation. All rights reserved.
对于Windows,如果以cmd终端启动
cd C:\Windows\Microsoft.NET\Framework\
dir
现在你看到所有的目录和文件在。net \Framework\ Please,选择v…比如,最近去那里,
cd v4.0.30319
Run
csc
你会看到关于c#编译器版本的信息,这可以是类似的
Microsoft (R) Visual C# Compiler version 4.7.2556.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
从开发人员命令提示符(Visual Studio > View > Terminal)输入:
csc -langversion:?
将显示所有支持的c#版本,包括默认版本:
1
2
3
4
5
6
7.0 (default)
7.1
7.2
7.3 (latest)
这取决于你使用的。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发布