怎么写扩展方法? 现在有classA,classB两个类,我想为classA和classB写一个扩展方法,但是不希望其他类能够具有这个扩展方法,这里应该如何对泛型参数T进行限制?
public static T SomeMethod<T>(this T source, object param)
{
....
}
分享到:更多
------解决方案-------------------- 这个好像只能写两遍了吧。要不用Object作为参数,函数内用反射? ------解决方案-------------------- 扩展方法只能扩展到一种类型上,即第一个参数,且必须用this指明
public static T Test<T, R>(this T t, R r)
where T : A
where R : B
要么另外再封装一个泛型类,再写扩展
public class C<T, R> where T : A where R : B {}
public static C Test(this C c, object param)
public static T Test<T>(this T t, object param) where T : C ------解决方案-------------------- 封装一个classA和classB的父类RootClass,
然后写RootClass的扩展方法
public static void Function<T>(this T aa)where T:RootClass
{
XXXXX;
} ------解决方案--------------------