質問

C#4.0の動的変数は、クラスのメンバーにしたり、メソッドに渡したり、メソッドから返したりできますか? C#3.0のvarはできませんでしたが、dynamicで可能かどうかについてはどこにも言及していません。

役に立ちましたか?

解決

上記のすべて。 VPCで試してみたところ、これらすべてを行うことができました。 「C#の新機能」ドキュメントを参照してください

他のヒント

はい。 var dynamic には大きな違いがあります。

var は、単に「変数の実際の型をコンパイラに推測させる」ことを意味します。

dynamic は変数の型です。したがって、型を指定できる場所であれば、代わりに dynamic を指定できます。 。 (これにはいくつかの例外があると確信していますが、それは基本的な考え方です。)

編集:Chris Burrowの 動的 2番目;もうすぐ期待されます)あらゆる場所で dynamic を使用するサンプルクラスを提供します。

この書籍のコードスニペット「C#via C#、3rd Ed」;動的な動作を示しています:

using System;
using System.Dynamic;
static class DyanmicDemo
{
    public static void Main() {
  for(Int32 demo =0; demo < 2; demo++) {
   dynamic arg = (demo == 0) ? (dynamic) 5 : (dynamic) "A";
   dynamic result = Plus(arg);
   M(result);
  }
 }
    private static dynamic Plus(dynamic arg) { return arg + arg; }
    private static void M(Int32 n) { Console.WriteLine("M(Int32): " + n); }
    private static void M(String s) { Console.WriteLine("M(String): " + s); }
}

Mainを実行すると、次の出力が表示されます。

M(Int32):10

M(String):AA

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top