1
下面是代碼,最後一行是我在做什麼亮點:C#試圖簡化通用擴展功能的通用類型的接口
public interface IHasContext<TContext> {
TContext Context {get; set;}
}
public static class Extensions {
public static void ProcessContext<THasContext, TContext>(this THasContext t)
where THasContext : IHasContext<TContext>
where TContext : class {
//...
}
}
public class SomeClassContext {/*...*/}
public class SomeClass : IHasContext<SomeClassContext> {
public SomeClassContext Context {get; set;}
//...
}
//now in a function I can do:
objSomeClass.ProcessContext<SomeClass, SomeClassContext>();
你看,因爲SomeClass
已經知道它包含<SomeClassContext>
,所以我想做:
objSomeClass.ProcessContext();
沒有<SomeClass, SomeClassContext>
塊。可能嗎?我應該如何改變我的代碼來實現它?謝謝:)
哦!謝謝!我無法將這個想法包裹起來。謝謝你的幫助! – Tom