前端之家收集整理的这篇文章主要介绍了
c# – 允许函数接受泛型类型的设计模式,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两节课:
public abstract class Uniform<T>
public class UniformMatrix4 : Uniform<Matrix4>
(到目前为止……将有更多实现不同类型的)
现在让我说我想编写一个接受任何统一对象的函数……但是我不能这样做,因为没有名为Uniform的类,只有通用的Uniform< T>.那么解决这个问题的最佳方法是什么?
>制作统一< T>实现IUniform
>制作统一< T>延伸统一
>使我接受Uniform的所有函数都是通用的,以便它们可以采用Uniform< T>直?
让你的
方法也通用,你也很好.
请注意,如果需要,您始终可以选择在函数上使用所有泛型类型参数,如下所示:
public void MyMethod<TUniform,T>(TUniform uniform) where TUniform: Uniform<T> {...}
只要有参数,编译器通常就会自己推断出类型参数,这样调用实际上就像C#源代码中的普通方法调用一样:
UniformMatrix4 uniform;
MyMethod(uniform); // the types of the generic functions are inferred
原文链接:https://www.f2er.com/csharp/243464.html