大佬教程收集整理的这篇文章主要介绍了c# – 优化通用方法逻辑,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
类实现接口.示例student类实现Istudent接口.@H_674_7@
public ObservableCollection<T> GetAll<T>() { try { if (typeof(T) == typeof(Istudent)) { return GetAll<T,student>(); } else if (typeof(T) == typeof(IZonE)) { return GetAll<T,Zone>(); } else if (typeof(T) == typeof(IemployeE)) { return GetAll<T,employee>(); } else if (typeof(T) == typeof(ICoursE)) { return GetAll<T,Course>(); } } }
这里调用者传递接口类型T和I检查T的类型.我传递给其他函数T和将返回T的列表的类.其他函数在基类中我无法改变.
有谁能建议我一些相同的东西.@H_674_7@
public ObservableCollection<T> GetAll<T>() { var typename = typeof(T).FullName; var indexOfDot = typename.LasTindexOf('.'); var newTypename = typename.SubString(0,indexOfDot) + '.' + typename.SubString(indexOfDot + 1); var newType = Type.GetType(newTypeName); var methodTypes = new [] { typeof(T),newType }; var method = GetType().getmethod("GetAll"); var typedMethod = method.MakeGenericMethod(methodTypes); return (ObservableCollection<T>) typedMethod.Invoke(this,new object[0]); }
不漂亮,但应该做的工作,并做一般.@H_674_7@
当前方式唯一的警告是GetAll方法被泛型参数重载,因此它可能无法使您获得正确的方法,或者因为有两个方法而失败.如果可以指出正确的那个,我会看看.@H_674_7@
以上是大佬教程为你收集整理的c# – 优化通用方法逻辑全部内容,希望文章能够帮你解决c# – 优化通用方法逻辑所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。