2

.Net Framework 2.0 を選択して、Visual Studio 2010 でコンソール プロジェクトを作成しました。

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 に付属しているため、この問題について誰か助けてもらえますか?

4

3 に答える 3

1

.NET バージョンと C# バージョンを混同していると思います。Visual Studio 2010 を使用してコンパイルする場合は、C#4 コンパイラを使用しています。これは、参照している .NET フレームワークのバージョンに関係ありません。

使用している機能は、フレームワークのバージョンではなくコンパイラのバージョンに関連付けられているため、コードは VS2008 でコンパイルできません (対象のフレームワークのバージョンに関係なく、VS2010 では成功します)。

于 2013-05-10T10:36:19.457 に答える