我的问题很简单:我想知道我正在使用哪个版本的C#.如果我将使用python,我会做一些像python -V
命令行或类型
import sys
print sys.version
Run Code Online (Sandbox Code Playgroud)
在PHP中我会做这样的事情:phpinfo();
在java中:java -version
但我无法在C#中找到如何实现这一目标.
我对C#完全不熟悉,所以请不要太难打败我.令我感到惊讶的是,我无法在SO上找到这个答案,因此我认为我在找东西时遗漏了一些东西或者很糟糕.顺便说一句,这个问题没有回答,虽然名字暗示它应该.
谢谢你的回答.现在我知道它取决于.NET框架,但有没有一种编程方式来确定我的框架?(无需转到目录并检查我的.NET文件夹的名称)
Pra*_*een 213
这取决于.NET Framework
你使用的.查看Jon Skeet关于版本的答案.
这是他的答案的简短版本.
C#1.0随.NET 1.0一起发布
C#1.2(奇怪的是); 随.NET 1.1发布
C#2.0随.NET 2.0一起发布
随.NET 3.5一起发布的C#3.0
C#4.0随.NET 4一起发布
随.NET 4.5一起发布的C#5.0
C#6.0随.NET 4.6一起发布
C#7.0随.NET 4.6.2一起发布
C#7.3随.NET 4.7.2发布
小智 78
虽然这不是直接回答你的问题,但是我把它放在这里,因为当我在寻找这些信息时谷歌将这个页面首先放入我的搜索中.
如果您使用的是Visual Studio,则可以右键单击项目,转到项目属性,然后转到"构建"选项卡上的"高级",查看项目所使用的版本.这应该列出可用的版本以及您的项目正在使用的版本.
Ale*_*kov 53
获取框架的版本 - 查看主要程序集之一的版本即
Console.Write(typeof(string).Assembly.ImageRuntimeVersion);
Run Code Online (Sandbox Code Playgroud)
获取C#编译器的版本有点困难,但您应该能够通过检查使用的框架版本来猜测版本.
如果您使用的是命令行编译器(csc.exe),您可以查看帮助以查看版本(无论如何您还需要了解Framework版本:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc /?
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Run Code Online (Sandbox Code Playgroud)
for*_*esl 21
从开发人员命令提示符类型
csc -langversion:?
Run Code Online (Sandbox Code Playgroud)
这将显示支持的所有 C# 版本,包括默认值:
1
2
3
4
5
6
7.0 (default)
7.1
7.2
7.3 (latest)
Run Code Online (Sandbox Code Playgroud)
小智 13
上面的大部分答案都是正确的。只需合并 3 个,我发现它既简单又快速。现在在 VS2019 中也无法使用 #1。
Visual Studio: Project > Properties > Build > Advanced
这个选项现在是禁用的,默认语言由VS自己决定。详细原因可在此处获得。
在代码 (.cs) 中的任意位置键入“#error version”,将鼠标悬停在它上面。
转到“Visual Studio 的开发人员命令提示符”并运行以下命令。
csc -langversion:?
阅读更多提示:在这里。
您使用的C#版本完全取决于您使用的.Net版本.
如果您正在使用visual studio进行开发,那么您可以选择.net框架版本与之相关的c#版本
这些是已知的C#版本:
- 使用.NET 1.0和VS2002 发布的C#1.0(2002年1月)
- C#1.2(奇怪的是); 随.NET 1.1和VS2003发布(2003年4月).调用
Dispose
实现的IEnumerator
s的第一个版本IDisposable
.其他一些小功能.- C#2.0随.NET 2.0和VS2005 一起发布(2005年11月).主要新功能:泛型,匿名方法,可空类型,迭代器块
- 随.NET 3.5和VS2008 发布的C#3.0(2007年11月).主要新功能:lambda表达式,扩展方法,表达式树,匿名类型,隐式类型(
var
),查询表达式- C#4.0随.NET 4和VS2010 发布(2010年4月).主要新功能:后期绑定(
dynamic
),委托和接口泛型方差,更多COM支持,命名参数和可选参数- C#5.0于2012年8月与.NET 4.5一起发布.
Refrence Jon Skeet的C#版本答案
查找 C# 版本的有用提示:
要了解您当前使用的语言版本,请
#error version
在代码中输入(区分大小写)。这使编译器生成诊断信息 CS8304,其中包含一条消息,其中包含正在使用的编译器版本和当前选择的语言版本。
来自MS 文档中的C# 语言版本控制。
您可以删除#error version
代码中的任何位置。它会产生一个错误,因此您需要在使用它后将其删除。该错误提供了编译器和语言版本的详细信息,例如:
Error CS8304 Compiler version: '3.7.0-6.20459.4 (7ee7c540)'. Language version: 8.0.
Run Code Online (Sandbox Code Playgroud)
至少在 VS 2019 中,您不需要编译代码#error version
来为您提供版本号。只需将鼠标悬停在代码中,就会显示与编译代码时相同的错误详细信息。
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
帮助 - >关于Microsoft Visual Studio - > .NET版本在右上角指定.
据我所知,Visual Studio在操作系统中使用.NET Framework.
可以使用"项目属性" - >"应用程序" - >"目标框架"修改Visual Studio中项目的目标.NET Framework版本
如果您知道.NET Framework目录,例如C:\ Windows\Microsoft.NET\Framework64\v4.0.30319
打开System.dll,右键单击 - >属性 - >详细信息选项卡
帮助 - >关于Microsoft Visual Studio
在已安装的产品列表中有Visual C#.就我而言,Visual C#2015
Visual Studio(Microsoft)按名称Visual C#发布C#.
https://msdn.microsoft.com/en-us/library/hh156499.aspx
C#6,Visual Studio .NET 2015当前版本,见下文
小智 7
如果您使用的是 VS2015,请按照以下步骤找出相同的:
下图显示了相同的步骤:
第1步:
第2步:
小智 7
感谢@fortesl 和这个答案
我正在使用 VS 2019,它不会轻易告诉您您正在使用的 C# 版本。我正在使用 .Net Core 3.0 和 VS 2019 在该环境中使用 C# 8。但是“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
Run Code Online (Sandbox Code Playgroud)
不确定 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.
Run Code Online (Sandbox Code Playgroud)
小智 7
默认情况下,根据项目的目标框架选择语言版本。
每个项目可能使用不同版本的.Net框架,将根据目标框架默认选择最合适的C#编译器。从 Visual Studio 中,UI 不允许用户更改语言版本,但是,我们可以通过编辑项目文件并添加新的属性组来更改语言版本。但这可能会导致现有代码中的编译/运行时问题。
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我可以从 Microsoft 文档中看到以下内容。
编译器根据以下规则确定默认值:
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
Run Code Online (Sandbox Code Playgroud)
当前的答案已经过时。您应该能够使用#error version
(在项目中任何 C# 文件的顶部,或代码中的几乎任何位置)。编译器以特殊方式处理此问题并报告编译器错误 CS8304,指示语言版本以及编译器版本。CS8304 的消息如下所示:
错误CS8304:编译器版本:“3.7.0-3.20312.3(ec484126)”。语言版本:6.
默认情况下,以下是Visual Studio的C#编译器的相应版本:
您也可以修改版本,请按照以下步骤操作.
step 1. Right click on the Project Name
step 2. Select "Properties" (last option in menu)
step 3. Select "Build" from left hand side options and scroll till down
step 4. click on "Advance" button.
step 5. It will open a popup and there you will get "Language Version" dropdown
step 6. Select desired version of C# and Click "OK"
Run Code Online (Sandbox Code Playgroud)