アカウント名:
パスワード:
var sample1 = new Sample();sample1.Add();dynamic sample2 = new Sample();sample2.Add();
と書けます。sample1
dynamic dynamic_obj = new Hoge();
dynamic_obj.メソッド名(引数1,...,引数n);
dynamic_obj.GetType() .GetMethod("メソッド名",{引数1.GetType(),...,引数n.GetType()}) .Invoke(引数1,...,引数n);
dynamic_obj.GetType()
.GetMethod("メソッド名",{引数1.GetType(),...,引数n.GetType()})
.Invoke(引数1,...,引数n);
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
自分の理解 (スコア:5, 参考になる)
正確にはそれを支えるために.NET Framework 4.0では動的なメソッド呼び出しをサポートするインターフェースが用意されるとか。
コード中には静的にコンパイルされたものと動的に決定されるものとが混在できる仕様です。
例えばあるSampleクラスがAdd()メソッドを持っていた場合、C# 4.0では
と書けます。sample1
Re: (スコア:2, 興味深い)
Re: (スコア:1)
* IDynamicObject を実装してたら IDynamicObject 経由
* そうじゃなかったらリフレクションから調べる
という分岐を勝手に中でやるそうです。
勝手にやられるのが恐怖っちゃー恐怖ですね。
Re:自分の理解 (スコア:1)
あくまでdynamic宣言した変数に対するメンバー呼び出しのみに制限されるので、それほど怖くないと思います。