C#版本兼容性

时间:2011-09-14 19:42:37

标签: c# .net version

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

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

并且感到困惑。

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

编辑:我在VS2010中创建了2个项目(一个类库和一个控制台),这两个项目都是.NET 2.0框架。在类库中,我创建了一个带有可选字符串参数的方法。我已经在控制台应用程序中使用它没有任何问题,有和没有传递参数。这与VS2010有什么关系吗?而“VS2010”你的意思是C#compiler 4.0?

3 个答案:

答案 0 :(得分:4)

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

请参阅this博文,以及这些问题 - onetwo

从本质上讲,3.5运行时会看到:

public void Contato(string nome, string email, string telefone, string ddd)
{
  //...
}

答案 1 :(得分:1)

语言功能取决于您使用的Visual Studio版本。 .Net Framework规定了.Net功能和类可供您使用。

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

答案 2 :(得分:0)

你必须使用VS2010 ...因为它支持它。