15
我有一个基类来引用当前类型,带的方法,其中,我想使用泛型迫使编码器对当前类使用一个通用表达式:如何使用泛型
public class TestClass
{
public void DoStuffWithFuncRef<T>(Expression<Func<T, object>> expression) where T : TestClass
{
this.DoStuffWithFuncRef(Property<T>.NameFor(expression));
}
}
现在,我想强制T是实例化类的类型,我希望C#编译器能够自动理解要使用的泛型类型。例如。我想避免编码下面的doStuff方法,在这里我必须指定正确的类型 - 而要用doStuffILikeButCannotGetToWork方法:
public class SubTestClass : TestClass
{
public string AProperty { get; set; }
public void doStuff()
{
this.DoStuffWithFuncRef<SubTestClass>(e => e.AProperty);
}
public void doStuffILikeButCannotGetToWork()
{
this.DoStuffWithFuncRef(e => e.AProperty);
}
}
这可能吗?我应该以不同的方式来做这件事吗?
谢谢你。我没有想到按照你所描述的方式制作完整的类,但它起作用并且导致很少的语法开销。 – Thies