Dar*_*rov 20
它允许您创建一个对象的实例,该对象的类型仅在运行时已知.所以我们假设你有一些课程
public class MyClass
{
public void SomeMethod()
{
}
}
Run Code Online (Sandbox Code Playgroud)
并且您想要创建它的实例.标准方法是这样做:
MyClass instance = new MyClass();
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,这意味着必须在编译时知道该类型.如果您希望用户在某个文本框中输入类的名称,该怎么办?在这种情况下,您可以使用Activator.CreateInstance:
// this could come from anywhere and it's known only at runtime
string someType = "MyClass";
object instance = Activator.CreateInstance(Type.GetType(someType));
Run Code Online (Sandbox Code Playgroud)
缺点是,由于在编译时不知道实际类型,因此必须使用反射来操作使用Activator.CreateInstance创建的实例.
| 归档时间: |
|
| 查看次数: |
4957 次 |
| 最近记录: |