c# - 如何根据要实例化的类的变量类型来实例化一个类
问题描述
有没有办法实例化一个类, 但不是通过它的 classname,而是使用 Class' 类型?可能/可能使用转换或反射。?
例如,我有一个类,并且通常按照...创建它的一个实例。
TCustDataDetailModel newDataDetail = new TCustDataDetailModel ();
但我希望能够像..
public void MyFunction (Type somePassedinParamType)
{
somePassedinParamType newDataDetail = new somePassedinParamType();
}
谢谢
解决方案
您需要使用Activator
该类。
public void MyFunction (Type somePassedinParamType)
{
var newInstance = Activator.CreateInstance(somePassedinParamType);
}
请注意,您没有空的构造函数,您需要使用其中一个覆盖CreateInstance
并传递类需要的内容。
推荐阅读
- c++ - 如何检测字符串中的不同字母和数字
- java - Liberty 空指针异常
- html - 通过 css 将 .svg 内部定义的样式应用到 .svg 元素基于它们的 `id` 属性
- python-3.x - 将 antlr4 Interval 类导入 Python
- c# - 我需要做什么才能让这个按钮运行后面代码中的代码?
- javascript - 选择不更新数据
- autohotkey - 在 AHK 脚本启动和永久显示工具提示
- amazon-web-services - EC2 实例的 AWS 策略
- node.js - 如何为 Angular CLI 7 应用程序启用 js 文件压缩?
- node.js - 猫鼬模式病毒和异步等待