我想知道我使用的是哪个版本的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中,当构建详细度设置为“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.
要获得框架的版本-查看一个主要程序集的版本。
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
这里有一个奇怪的技巧,可以快速找到你正在使用的c#版本。编辑项目中的任何。cs文件,并在命名空间语句的末尾添加一个分号:
命名空间Whatever ->命名空间Whatever;
命名空间工作将以红色下划线显示;将鼠标悬停在它上面,它会显示如下内容: “CS8370:文件范围的命名空间在c#7.3中不可用。请使用10.0或更高版本的语言。”
在VS2022上使用。net Framework项目进行测试。如果使用的是。net或。net Core项目,那么这个特性可以很好地工作。
你所使用的c#版本完全取决于你所使用的。net版本。
如果你使用visual studio进行开发,你可以选择。net框架版本 与之相关的c#版本也随之而来
以下是已知的c#版本:
C# 1.0 released with .NET 1.0 and VS2002 (January 2002) C# 1.2 (bizarrely enough); released with .NET 1.1 and VS2003 (April 2003). First version to call Dispose on IEnumerators which implemented IDisposable. A few other small features. C# 2.0 released with .NET 2.0 and VS2005 (November 2005). Major new features: generics, anonymous methods, nullable types, iterator blocks C# 3.0 released with .NET 3.5 and VS2008 (November 2007). Major new features: lambda expressions, extension methods, expression trees, anonymous types, implicit typing (var), query expressions C# 4.0 released with .NET 4 and VS2010 (April 2010). Major new features: late binding (dynamic), delegate and interface generic variance, more COM support, named arguments and optional parameters C# 5.0 released with .NET 4.5 in August 2012.
参考Jon Skeet的c#版本回答
前面的大部分答案都是正确的。只是巩固3,我发现这很简单,超级快。此外,#1现在在VS2019中是不可能的。
Visual Studio:项目>属性>构建>高级 这个选项现在被禁用了,默认语言由VS自己决定。详细的原因可以在这里找到。 在代码中任意位置输入“#error version”(.cs),鼠标悬停。 进入“Visual Studio开发人员命令提示符”并运行以下命令。 csc比如langversion: ?
阅读更多提示:这里。