我使用的是哪个版本的C#
我想知道我使用的是哪个版本的C。 如果我要使用python,我会从命令行执行类似于我使用的是哪个版本的C#,c#,version,C#,Version,我想知道我使用的是哪个版本的C。 如果我要使用python,我会从命令行执行类似于python-V的操作,或者键入: import sys print sys.version 在PHP中,我会这样做:phpinfo()在java中:java-version 但我无法找到如何在C#中实现这一点 没有回答,尽管名字暗示它应该回答 我知道这取决于.NET框架,但是有没有一种程序化的方法来确定我的框架?我的意思是不去目录并检查.NET文件夹的名称。这取决于您使用的.NET Framework。检查版本
python-V
的操作,或者键入:
import sys
print sys.version
在PHP中,我会这样做:phpinfo()代码>在java中:java-version
但我无法找到如何在C#中实现这一点
没有回答,尽管名字暗示它应该回答
我知道这取决于.NET框架,但是有没有一种程序化的方法来确定我的框架?我的意思是不去目录并检查.NET文件夹的名称。这取决于您使用的.NET Framework
。检查版本
以下是他的答案的简短版本
C#1.0与.NET 1.0一起发布
C#1.2(很奇怪);释放
使用.NET1.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#版本完全取决于您使用的.Net版本。
如果您使用visual studio进行开发,则可以选择.net framework版本
与之相关的c#版本也相应地出现了
以下是C#已知的版本:
- C#1.0与.NET 1.0和VS2002一起发布(2002年1月)
- C#1.2(很奇怪);与.NET1.1和VS2003一起发布(2003年4月)。在
IEnumerator
s上调用Dispose
的第一个版本,它实现了IDisposable
。其他一些小功能
- C#2.0与.NET 2.0和VS2005一起发布(2005年11月)。主要新特性:泛型、匿名方法、可空类型、迭代器块
- C#3.0与.NET 3.5和VS2008一起发布(2007年11月)。主要新功能:lambda表达式、扩展方法、表达式树、匿名类型、隐式类型(
var
),查询表达式
- C#4.0与.NET 4和VS2010(2010年4月)一起发布。主要新功能:后期绑定(
动态
),委托和接口通用差异,更多COM支持,命名参数和可选参数
- C#5.0于2012年8月随.NET 4.5发布
参考获取框架版本-查看一个主要组件的版本,即
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
要查看已安装的VC#编译器版本,请执行以下操作:
打开VisualStudio命令提示符,只需键入csc,然后按Enter键
您将看到如下内容:
Microsoft(R)Visual C#编译器版本4.0.30319.34209
适用于Microsoft(R).NET Framework 4.5
版权所有(C)微软公司。保留所有权利
备注:“CSC”代表“C Sharp Compiler”。实际上,使用此命令可以运行CSC.exe,这是一个位于“C:\Windows\Microsoft.NET\Framework\vX.X.XXX”中的可执行文件。有关CSC的更多信息,请访问注册表中的.NET版本
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\浏览子项并查看每个版本。键为“Full”的版本是系统上的版本
通过Visual Studio的.NET版本
帮助->关于Microsoft Visual Studio->在右上角指定了.NET版本
据我目前所知,VisualStudio使用操作系统中的.NET框架
Visual Studio中项目的目标.NET Framework版本可以使用项目属性->应用程序->目标框架进行修改
通过dll
如果您知道.NET Framework目录
e、 g.C:\Windows\Microsoft.NET\Framework64\v4.0.30319
打开System.dll,右键单击->属性->详细信息选项卡
C版本
帮助->关于Microsoft Visual Studio
在已安装的产品列表中有Visual C#。在我的例子中是Visual C#2015
Visual Studio(Microsoft)以Visual C的名称发布C
C#6,Visual Studio.NET 2015
当前版本,请参见下面的虽然这并不是直接回答您的问题,但我还是把它放在这里,因为当我在搜索这些信息时,谷歌在我的搜索中首先打开了这个页面
如果您使用的是Visual Studio,则可以右键单击您的项目->属性->构建->高级
这应该列出可用版本以及项目正在使用的版本
默认情况下,以下是Visual Studio C#编译器的相应版本:
Visual Studio 2015:C#6.0
Visual Studio 2013:C#5.0
Visual Studio 2012:C#5.0
VisualStudio2010:C#4.0
VisualStudio2008:C#3.0
VisualStudio2005:C#2.0
Visual Studio.NET 2003:C#1.2
Visual Studio.NET 2002:C#1.0
您也可以修改版本,请按照以下步骤操作。
打开“项目属性”窗口:
对于Windows,您可以在命令/搜索程序行中运行dev,并为VS选择Developer命令提示符,然后只运行
csc
现在你可以进去了
csc
Microsoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Copyright (C) Microsoft Corporation. All rights reserved.
cd C:\Windows\Microsoft.NET\Framework\
dir
cd v4.0.30319
csc
Microsoft (R) Visual C# Compiler version 4.7.2556.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
csc -langversion:?
1
2
3
4
5
6
7.0 (default)
7.1
7.2
7.3 (latest)
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
D:\>csc --version
Microsoft (R) Visual C# Compiler version 3.4.0-beta1-19462-14 (2f21c63b)
Copyright (C) Microsoft Corporation. All rights reserved.
using System;
using Microsoft.Win32;
public class GetDotNetVersion
{
public static void Main()
{
Get45PlusFromRegistry();
}
private static void Get45PlusFromRegistry()
{
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null) {
Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int) ndpKey.GetValue("Release"))}");
}
else {
Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
}
}
// Checking the version using >= enables forward compatibility.
string CheckFor45PlusVersion(int releaseKey)
{
if (releaseKey >= 528040)
return "4.8 or later";
if (releaseKey >= 461808)
return "4.7.2";
if (releaseKey >= 461308)
return "4.7.1";
if (releaseKey >= 460798)
return "4.7";
if (releaseKey >= 394802)
return "4.6.2";
if (releaseKey >= 394254)
return "4.6.1";
if (releaseKey >= 393295)
return "4.6";
if (releaseKey >= 379893)
return "4.5.2";
if (releaseKey >= 378675)
return "4.5.1";
if (releaseKey >= 378389)
return "4.5";
// This code should never execute. A non-null release key should mean
// that 4.5 or later is installed.
return "No 4.5 or later version detected";
}
}
}
// This example displays output like the following:
// .NET Framework Version: 4.6.1
<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
Error CS8304 Compiler version: '3.7.0-6.20459.4 (7ee7c540)'. Language version: 8.0.