【发布时间】:2010-11-08 09:39:25
【问题描述】:
注意:我知道 C# 有匿名类型和内部类型,但它们的作用与旧的 java 匿名内部类截然不同。
假设我有一个接口:
public interface Foo<T>
{
int Fizz(string a);
T Buzz(object o);
void Crackle();
}
那里有什么东西(ReSharper 宏或类似的东西)可以让我生成一个实现类,该类将履行 java 样式 AIC 的角色(即,允许我定义内联功能)。即
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();
}
}
(我还没有详细考虑过这一点大量。所以我想可以创建一个更智能的类,其中包含只读成员注入、调用时的空值检查、适用于抽象类等,但这应该传达我想要实现的一般想法)
有人知道可以做到这一点的东西吗?或者,除此之外,推荐最轻松的方式来做这样的事情——这在 T4 引擎中是否可行?
【问题讨论】:
标签: c# macros anonymous-class