我創建了一個控制檯項目在Visual Studio 2010與.Net框架2.0選擇命名和可選參數的工作在.NET 2.0
namespace ConsoleApp1
{
class Program
{
public int Add(int a, int b = 0, int c = 0)
{
Console.WriteLine("a is " + a);
Console.WriteLine("b is " + b);
Console.WriteLine("c is " + c);
return a + b + c;
}
public static void Main()
{
Program o = new Program();
Console.WriteLine(o.Add(10));
Console.WriteLine(o.Add(10, 10));
Console.WriteLine(o.Add(10, 10, 10));
Console.WriteLine(o.Add(b: 20, a: 10));
Console.ReadLine();
}
}
}
它的工作原理成功。
但是,如果我在Visual Studio 2008中輸入相同的代碼,它會失敗!
任何人都可以請幫我解決這個問題,因爲命名參數和可選參數隨C#4一起提供?
我不能完全肯定,但它可能只是編譯的事情。創建的代碼與'.NET 2.0'運行時完全兼容。和VS2008不理解這個構造,因爲它不瞭解最新的'C#'規範(除非你安裝額外的軟件包) – Pako 2013-05-10 10:31:43
我試圖找到確切的原因,因爲我試圖在泛型接口和委託中使用協變和反變量,它只能工作在.NET 4.0中。其他C#4.0功能在.NET 2.0或.NET 3.5中失敗。 – 2013-05-10 10:33:04
@PrakashBhatia我在回答中提到了協變/反變化 – 2013-05-10 10:41:07