Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#版本兼容性_C#_.net_Version - Fatal编程技术网

C#版本兼容性

C#版本兼容性,c#,.net,version,C#,.net,Version,我正在开发一个目标框架为3.5版的应用程序。但是在查看代码时,我发现了一个使用默认参数的方法: public void Contact(string name, string email, string phone, string phoneAreaCode = "") { //... } 我很困惑 语言功能独立于框架版本?两者之间的关系是什么?为什么这是上面的代码 编辑:我在VS2010中创建了两个项目(一个类库和一个控制台),都标记了.NET 2.0框架。在类库上,我创建了一个带有

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

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代码可以利用可选参数。