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