首页 >后端开发 >C++ >如何在 C# 中使用参数化构造函数实例化泛型对象?

如何在 C# 中使用参数化构造函数实例化泛型对象?

Linda Hamilton
Linda Hamilton原创
2025-01-09 12:07:43799浏览

How Can I Instantiate Generic Objects with Parameterized Constructors in C#?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn