注: C# には匿名型と内部型があることは承知していますが、これらは古い Java の匿名内部クラスとは著しく異なる役割を果たします。
インターフェースがあるとします:
public interface Foo<T>
{
int Fizz(string a);
T Buzz(object o);
void Crackle();
}
Java スタイルの AIC の役割を果たす (つまり、インラインで機能を定義できる) 実装クラスを生成できる何か (ReSharper マクロなど) はありますか? すなわち
public class FooAIC<T> : Foo<T>
{
public Func<string, int> Fizz;
public Func<object, T> Buzz;
public Action Crackle;
int Foo<T>.Fizz(string a)
{
return Fizz(a);
}
T Foo<T>.Buzz(object o)
{
return Buzz(o);
}
void Foo<T>.Crackle()
{
Crackle();
}
}
(私はこれを詳細に考えていません。したがって、読み取り専用のメンバー注入、呼び出しの null チェック、抽象クラスの動作などを使用して、よりスマートなクラスを作成できると思いますが、これは私が何をするかについての一般的な考えを伝えるはずです達成したい)
これを行うことができる何かを知っている人はいますか?または、それを除けば、このようなことを行うのに最も苦労しない方法をお勧めします - これは T4 エンジンで可能でしょうか?