![]() |
1
19
是否要使用t=每个属性的类型来调用dostuf<t>?在这种情况下,“原样”需要使用反射和makeGenericMethod,即
不过,这不是很漂亮。事实上,我想知道,仅仅拥有:
在这个例子中,泛型给了您什么?请注意,在反射调用期间,值类型仍然会被装箱,甚至装箱。 isn't as bad as you might think . 最后,在许多场景中,typescriptor.getproperties()比type.getproperties()更合适—允许灵活的对象模型等。 |
![]() |
2
7
您的构造函数代码是否打算这样读:
?注意
如果是这样的话,问题是当泛型确实不适用时,您正在尝试使用它们。泛型的要点(好吧,其中之一)是使用编译时类型安全性。在这里,您在编译时不知道类型!您可以通过反射调用该方法(获取打开的窗体,然后调用 MakeGenericMethod )但那很难看。
做
|
![]() |
3
2
如果您不使用其他地方的dostuff,我还建议编写一个非泛型方法。 也许您创建了通用方法来使用默认值(T)。要在非泛型方法中替换它,可以对值类型使用Activator.CreateInstance(T),对引用类型使用空值:
|
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
milczi · Swift通用无强制展开向下投射 6 年前 |
![]() |
bugs · Typescript-泛型类型扩展自身 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
![]() |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |