c#版本兼容性

本文关键字:兼容性 版本 | 更新日期: 2023-09-27 18:08:31

我正在开发一个目标框架是3.5版的应用程序。但是在查看代码时,我发现了一个使用默认参数的方法:

public void Contact(string name, string email, string phone, string phoneAreaCode = "")
{
    //...
}

和混淆

语言特性独立于框架版本?两者之间的关系是什么?为什么上面的代码是可能的?

EDIT:我在VS2010中创建了2个项目(一个类库和一个控制台),都是标记。net 2.0框架。在类库中,我创建了一个带有可选字符串参数的方法。我在控制台应用中使用过它,没有任何问题,无论是否传递参数。这与VS2010有什么关系吗?你说的VS2010是指c#编译器4.0吗?

c#版本兼容性

编译器发出信息,但3.5运行时不使用它-它只是被忽略。

看这篇博文,还有这些问题——一、两个。

实际上,3.5运行时看到的是:
public void Contato(string nome, string email, string telefone, string ddd)
{
  //...
}

语言特性取决于您使用的Visual Studio版本。. net框架规定了你可以使用哪些。net函数和类。

上面的代码是可能的,因为您正在使用Visual Studio 2010。无论程序集的目标是什么. net版本,都可以使用新代码编辑器的所有功能。但是,当你试图在。net 3.5代码中使用。net 4.0类或函数时,你会得到一个编译错误。

您必须使用VS2010…因为它支持