在 C++ 模板中,可以指定某一类型参数为默认值。 IE。除非明确指定,否则它将使用类型 T。
这可以在 C# 中完成或近似吗?
我正在寻找类似的东西:
public class MyTemplate<T1, T2=string> {}
因此,未明确指定的类型的实例T2
:
MyTemplate<int> t = new MyTemplate<int>();
本质上是:
MyTemplate<int, string> t = new MyTemplate<int, string>();
最终,我正在研究一个案例,其中有一个相当广泛使用的模板,但我正在考虑使用附加类型参数进行扩展。我想我可以子类化,但我很好奇是否还有其他选择。
子类化是最好的选择。
我将对您的主要通用类进行子类化:
class BaseGeneric<T,U>
具有特定类别
class MyGeneric<T> : BaseGeneric<T, string>
这使得您可以轻松地将逻辑保留在一处(基类),而且还可以轻松提供两种使用选项。根据班级的不同,可能只需要很少的额外工作就可以实现这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)