这是代码,最后一行是我正在做的重点:
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>
大块。是否可以?我应该如何改变我的代码来实现它?谢谢 :)