![]() |
1
82
不,泛型或非泛型类都不支持泛型构造函数。同样,不支持泛型事件、属性和终结器。 只是偶尔我同意它会很方便-但是语法看起来很糟糕。例如,假设您有:
你会怎么做
你知道吗?调用非泛型类的泛型构造函数,还是泛型类的普通构造函数?你必须以某种方式区分它们,这会很混乱:( 同样,考虑泛型类中的泛型构造函数:
如何调用构造函数?希望我们都能同意:
太可怕了。。。 因此,是的,从语义上说,它偶尔会有用——但不幸的是,由此产生的丑陋抵消了这一点。 |
![]() |
2
31
不支持泛型构造函数,但您可以通过定义泛型,
用法如下:
|
![]() |
3
0
下面是一个实际的例子,说明如何使用额外的构造函数类型参数以及解决方法。
我要介绍一个简单的
最好的方法是你能写(就像C++人能做的那样)
如果您的类有任何泛型类型的字段,那么您别无选择,只能将所有这些类型放到类中。但是,如果您只是想对构造函数隐藏某些类型,则需要使用上述技巧—使用隐藏的构造函数将所有内容组合在一起,并定义一个普通的泛型函数来调用该构造函数。 |
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
milczi · Swift通用无强制展开向下投射 6 年前 |
![]() |
bugs · Typescript-泛型类型扩展自身 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
![]() |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |