C# Activator和new的区别
需要动态的创建一个实例模型的时候,就用Activator.CreateInstance(Type type);如果是明确的知道要创建哪个实例的模型,就可以用 new
C#在类工厂中动态创建类的实例,所使用的方法为:
Activator.CreateInstance (Type)
Activator.CreateInstance (Type, Object[])
两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数。
动态创建时,可能会动态使用到外部应用的DLL中类的实例,则此时需要进行反编译操作,使用Reflection命名控件下的Assembly类。
//先使用Assembly类载入DLL,再根据类的全路径获取类
object result = null;
Type typeofControl = null;
Assembly tempAssembly;
tempAssembly = Assembly.LoadFrom(vDllName);
typeofControl = tempAssembly.GetType(vFullClassName);
result = Activator.CreateInstance(typeofControl, objParam);
实例化一个类的方式
用 New 关键字实例化一个类
New 关键字用于创建对象和调用构造函数。是实例化一个类最常见的方式。
用 Activator 实例化一个类
Activator 用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。其 CreateInstance 方法创建在程序集中定义的类型的实例。
用 Assembly 实例化一个类
Assembly 表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言运行库应用程序构造块。该类可以加载程序集、浏览程序集的元数据和构成部分、发现程序集中包含的类型以及创建这些类型的实例。
加载程序集的推荐方式是使用 Load 方法。GetType 方法可用于在程序集中搜索特定类型。CreateInstance 方法可用于在程序集中搜索和创建类型的实例。
————————————————
版权声明:本文为CSDN博主「只要你在」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/icebergliu1234/article/details/84062674
C# Activator和new的区别相关推荐
- Assembly中Load, LoadFrom, LoadFile以及AppDomain, Activator类中相应函数的区别
Assembly和AppDomain的一些关于动态加载程序集的函数有些令人头疼,但细细研究后还是可以将他们区分的. 这些函数大致可以分为四类: 第一类:加载到Load Context内 Load Co ...
- createinstance.java_C# Activator.CreateInstance()方法使用
本文来自:http://blog.csdn.net/jaydawson/article/details/5539438 C#在类工厂中动态创建类的实例,所使用的方法为: 1. Activator.Cr ...
- Ilist与List的区别
首先要了解一点的是关于接口的基础知识: 接口不能直接实例化 但是接口派生出来的抽象类可以实例化 所有派生出来的抽象类都可以强制转换成接口的实例 第三条我解释一下:比如,IList <Class& ...
- var和dynamic的区别及如何正确使用dynamic?
1.var与dynamic的区别 C#中的很多关键词用法比较容易混淆,var和dynamic就是其中一组,但其实它们是有本质的区别的.var 在编译阶段已经确定类型,在初始化时候,必须提供初始化的 ...
- C# Activator
需要动态的创建一个实例模型的时候,就用Activator.CreateInstance(Type type);如果是明确的知道要创建哪个实例的模型,就可以用 new C#在类工厂中动态创建类的实例,所 ...
- osgi和spring区别_OSGI和Spring动态模块–简单的Hello World
osgi和spring区别 在此姿势中,我们将采用使用OSGi进行的第一个实现,并使用Spring Dynamic Modules改进应用程序. Spring动态模块(Spring Dm)使基于OSG ...
- C#中反射和动态关键字有什么区别?
目录 介绍 什么是反射以及我们为什么需要它? 我们如何实现反射? 第1步 第2步 反射的实际用途是什么? Dynamic关键字的用途是什么? Dynamic关键字的实际用途是什么? 反射和Dynami ...
- Identity, Positive, 和Similarity的区别
identity和similarity有什么区别,发现自己对这几个概念也不甚了了,于是做了点功课,如下. 第一反应 去查了BLAST的glossary Identity The extent to w ...
- 关于Assembly.CreateInstance()与Activator.CreateInstance()方法
关于Assembly.CreateInstance()与Activator.CreateInstance()方法 动态创建类对象,大多是Activator.CreateInstance()和Activ ...
- C#反射:PropertyInfo、FieldInfo和MemberInfo的区别
第一次接触反射机制,不是很理解PropertyInfo.FieldInfo和MemberInfo的区别 现在做一个实验,和大家分享下实验结果 首先定义测试类 public class ttt {pub ...
最新文章
- 数字图像处理笔记一 - 图像采集(空间分辨率和幅度分辨率)
- 服务器信息采集协议,服务器信息采集
- gitee使用svn_Gitee SVN支持
- BZOJ1861:[ZJOI2006]书架(Splay)
- Android—将Bitmap图片保存到SD卡目录下或者指定目录
- five months plan
- Karush-Kuhn-Tucker (KKT条件)
- 在 SAP Kyma 上部署一个 Go MSSQL API Endpoint
- UVa 11549 Calculator Conundrum
- sqli-lab——Writeup(38~over)堆叠等......
- C# ref与out区别
- linux amd显卡调风扇转速,显卡风扇转速设置教程方法
- html思维导图word版,[精选]思维导图(完美排版word).doc
- Basler相机全部型号详细参数
- 关于使用火车采集器采集分页URL不变化网站
- 杭州好玩景点攻略470
- C语言 用switch语句算工资
- RabbitMQ之消息的自动应答、手动应答和消息持久化(Java开发)
- sift特征检测与匹配
- Windows非法文件和目录的创建及删除方式
热门文章
- Android 多语言对照表
- 史上最严重网络数据泄露事件合集
- dos命令、find、findstr、ping、nbtstat、netstat、net、at、ftp、telnet、tasklist、taskkill、netsh...
- 利用手机距离感应器来切换是用扬声器听音乐还是听筒听音乐
- Oracle扩展redo
- macOS更换jupyter notebook默认浏览器
- ExoPlayer播放器播放MP2音频格式视频无声音加入Ffmpeg软解码功能
- 植物大战僵尸:实现灵魂收割者
- 蓝叠手机模拟器使用技巧
- HMC_Hamiltonian Monte Carlo 推导,代码