C#版本兼容性
我正在开发一个目标框架为3.5版的应用程序。但是在查看代码时,我发现了一个使用默认参数的方法:C#版本兼容性,c#,.net,version,C#,.net,Version,我正在开发一个目标框架为3.5版的应用程序。但是在查看代码时,我发现了一个使用默认参数的方法: public void Contact(string name, string email, string phone, string phoneAreaCode = "") { //... } 我很困惑 语言功能独立于框架版本?两者之间的关系是什么?为什么这是上面的代码 编辑:我在VS2010中创建了两个项目(一个类库和一个控制台),都标记了.NET 2.0框架。在类库上,我创建了一个带有
public void Contact(string name, string email, string phone, string phoneAreaCode = "")
{
//...
}
我很困惑
语言功能独立于框架版本?两者之间的关系是什么?为什么这是上面的代码
编辑:我在VS2010中创建了两个项目(一个类库和一个控制台),都标记了.NET 2.0框架。在类库上,我创建了一个带有可选字符串参数的方法。我在控制台应用程序中使用过它,没有任何问题,无论是否传递参数。这与VS2010有什么关系吗?“VS2010”是指C#compiler 4.0?您必须使用VS2010。。。因为它支持它。编译器发出信息,但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类或函数时,您将得到一个编译器错误。同样值得注意的是,在Visual Studio 2008/2010中针对.net 2时,可以使用C#3s自动属性。我在VS2010中创建了两个项目(类库和控制台),这两个项目都标记了.net 2.0框架。在类库上,我创建了一个带有可选字符串参数的方法。我在控制台应用程序中使用过它,没有任何问题,无论是否传递参数(尽管有链接文章)。这与VS2010有什么关系吗?@Raphael-注释不是代码示例的好地方。如果你还有其他问题,为什么不问一个新问题呢?这个答案上的第二个问题回答了评论中的问题。与此答案相反,3.5代码可以利用可选参数。