C#中参数化构造函数的泛型对象实例化
在C#中,可以创建具有参数化构造函数的泛型类型的实例。然而,提供的代码示例中,为基类提供新的无参数构造函数的方法,在实际场景中并不总是切实可行的。
为了解决这个问题,一种解决方案是使用Activator类。以下代码片段演示了这种方法:
<code class="language-C#">return (T)Activator.CreateInstance(typeof(T), new object[] { weight });</code>
这段代码使用Activator.CreateInstance方法实例化一个新的T类型对象。typeof(T)表达式返回泛型类型的Type对象,通过将所需参数作为对象数组传递来调用构造函数。
需要注意的是,泛型类型上的new()约束仅用于确保编译器在编译时检查是否存在公共无参数构造函数。实例创建的实际机制仍然是Activator类。
然而,值得考虑的是,依赖Activator类可能会引入一定程度的代码异味,并且通常建议在当前版本的C#中避免此类需求。
以上是如何在 C# 中使用参数化构造函数实例化泛型对象?的详细内容。更多信息请关注PHP中文网其他相关文章!