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