私はサイモンスベンソンに屈するない - ビューのより海峡前方非動的ポイントのために - あなたはDynamicObjectから継承する場合は、それを行う方法を示しています
申し訳ありませんが、何も - それができるオブジェクトの種類がありますたとえば、代理人と呼ばれる。
Func<int, int> myDelagate = x=>x*2;
int four = myDelagate(2)
ありただし、デフォルトのプロパティである - 少なくとも1つのパラメータを持っている必要があり、そのアクセスは、配列アクセスのようになります。
class Test1
{
public int this[int i, int j]
{
get { return i * j; }
}
}
は次に、あなたが行うことができます
Test1 test1 = new Test1();
int six = test1[2, 3];
を呼び出します次のような代理人と実際に馬鹿なもの:
class Test2 // I am not saying that this is a good idea.
{
private int MyFunc(int z, int i)
{
return z * i;
}
public Func<int, int> this[int i] { get { return x => MyFunc(x, i); } }
}
そして、それはこのような奇妙に見える呼び出す:
Test2 test = new Test2();
test[2](2); // this is quite silly - don't use this.....
+1恐ろしい質問があります。 – ClosureCowboy