我想知道我使用的是哪个版本的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文件夹的名称。
当前回答
对于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中,当构建详细度设置为“normal”或更高(默认值为“minimal”)时,通过查看构建输出来查看c#语言版本。
将构建输出的详细信息调整为“正常”、“详细”或“诊断”。(另外两个值“Quiet”和“Minimal”不显示语言版本。)要设置构建输出的详细信息,选择菜单Tools | Options…然后在“选项”对话框中,选择“项目和解决方案”|“构建和运行”。寻找标签“MSBuild项目输出冗长”。设置为上面给出的三个值之一。
构建(如果您的构建是最新的,则通过菜单选择Build | Rebuild强制进行构建。) 打开输出窗口 菜单选择查看|输出。 在输出窗口中,为标签为“Show output from”的项目设置“Build”: 搜索“langversion”。在一个非常非常长的行(我的机器上现在有1578个字符)中间,寻找像这样的开关:/langversion:9.0
(要在输出窗口中搜索,在输出窗口中单击,然后使用键盘快捷键Ctrl+F调用搜索窗格。)
对于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.
这里概述了. 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
找到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编译代码来给出版本号。只要在代码中将鼠标移到它上,就会出现与编译代码时看到的相同的错误细节。
这里有一个奇怪的技巧,可以快速找到你正在使用的c#版本。编辑项目中的任何。cs文件,并在命名空间语句的末尾添加一个分号:
命名空间Whatever ->命名空间Whatever;
命名空间工作将以红色下划线显示;将鼠标悬停在它上面,它会显示如下内容: “CS8370:文件范围的命名空间在c#7.3中不可用。请使用10.0或更高版本的语言。”
在VS2022上使用。net Framework项目进行测试。如果使用的是。net或。net Core项目,那么这个特性可以很好地工作。