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

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

Linda Hamilton
发布: 2025-01-09 12:07:43
原创
868 人浏览过

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

C#中参数化构造函数的泛型对象实例化

在C#中,可以创建具有参数化构造函数的泛型类型的实例。然而,提供的代码示例中,为基类提供新的无参数构造函数的方法,在实际场景中并不总是切实可行的。

为了解决这个问题,一种解决方案是使用Activator类。以下代码片段演示了这种方法:

return (T)Activator.CreateInstance(typeof(T), new object[] { weight });
登录后复制

这段代码使用Activator.CreateInstance方法实例化一个新的T类型对象。typeof(T)表达式返回泛型类型的Type对象,通过将所需参数作为对象数组传递来调用构造函数。

需要注意的是,泛型类型上的new()约束仅用于确保编译器在编译时检查是否存在公共无参数构造函数。实例创建的实际机制仍然是Activator类。

然而,值得考虑的是,依赖Activator类可能会引入一定程度的代码异味,并且通常建议在当前版本的C#中避免此类需求。

以上是如何在 C# 中使用参数化构造函数实例化泛型对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板