我正在开发一个目标框架是3.5版的应用程序。但在查看代码时,我发现了一个使用默认参数的方法:
public void Contact(string name, string email, string phone, string phoneAreaCode = "")
{
//...
}
并且感到困惑。
语言功能独立于框架版本?两者之间的关系是什么,为什么这可能是上面的代码?
编辑:我在VS2010中创建了2个项目(一个类库和一个控制台),这两个项目都是.NET 2.0框架。在类库中,我创建了一个带有可选字符串参数的方法。我已经在控制台应用程序中使用它没有任何问题,有和没有传递参数。这与VS2010有什么关系吗?而“VS2010”你的意思是C#compiler 4.0?
答案 0 :(得分:4)
编译器发出信息,但3.5运行时没有使用它 - 它只是被忽略了。
从本质上讲,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 ...因为它支持它。