ネタ元↓
Charlie Calvert's Community Blog: Future Focus I: Dynamic Lookup
Srivatsn's Blog : Dynamic dispatch in C#
ゆくゆく(4.0?)はC# に、dynamic ってのができるのかもっていうお話。目的は・・・遅延バインディング?
Dynamic dispatch in C#に書かれているのをさくっと引用
Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
object obj = Activator.CreateInstance(myType);
object[] args = new object[2];
args[0] = "Hello";
args[1] = 3;
myType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, null, args);
Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
dynamic
{
object obj = Activator.CreateInstance(myType);
obj.MyMethod("Hello", 3);
}
上のように書いていたものが下のように書ける・・・ようになるかも。dynamic ってブロックなのか。で、dynamic ブロックの中でobjがobject型なのにMyMethodを呼び出せると・・・。
ほほ~ん。dynamic ってブロックなのでVisual Basic のOption Strict Off より範囲はせまい?
(よく考えたらOption Strict OffだってPartial Class やPartial Methodでだいぶせまくできるんじゃ・・・。ブロックとまではいかないまでも。)