zoukankan      html  css  js  c++  java
  • Activator.CreateInstance 方法 (Type) 的用法

    转自:http://www.cnblogs.com/lmfeng/archive/2012/01/30/2331666.html

    Activator.CreateInstance 方法 (Type) 的用法

     
    Activator.CreateInstance 方法 (Type) 

    使用与指定参数匹配程度最高的构造函数来创建指定类型的实例。

    命名空间:System
    程序集:mscorlib(在 mscorlib.dll 中) 

    C# 
    public static Object CreateInstance (Type type)

    Activator.CreateInstance 泛型方法 ()

    注意:此方法在 .NET Framework 2.0 版中是新增的。

    创建类型的一个实例,该类型由指定的泛型类型参数指定。

    命名空间:System
    程序集:mscorlib(在 mscorlib.dll 中)

    C# 
    public static T CreateInstance<T> ()
    Activator.CreateInstance 
    (Type)实例
    输入一个类的名称为参数,返回一个相应的类的实例。
    这在工厂模式中是非常有用的,这样,可以使程序有更高的扩展性 
    复制代码
    /*
     * Created by SharpDevelop.
     * User: 19004991
     * Date: 2009-8-6
     * Time: 9:10
     */
    using System;

    namespace ActivatorCreateInstance
    {
        public interface IObject
        {
            void printName();
        }
        
        public class ClassExam : IObject
        {
            private string name="default name";
            
            public ClassExam()
            {
            }
            
            public ClassExam(string name)
            {
                this.name = name;
            }
            
            public void printName()
            {
                Console .WriteLine (this.name );
            }
        }
        
        public class Program
        {
            public Program()
            {
            }
            
            public static void Main(string[] args)
            {
                // TODO: Implement Functionality Here
                
                IObject obj1=(IObject)Activator.CreateInstance(System.Type.GetType ("ActivatorCreateInstance.ClassExam"));
                
                obj1.printName();
                
                IObject obj2=(IObject)Activator.CreateInstance(System.Type.GetType("ActivatorCreateInstance.ClassExam"),new string[]{"seted new name"});
                
                obj2.printName();
                
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey(true);
            }
        }
    }
    复制代码

    网上代码System.Type.GetType内为"ActivatorCreateInstance.ClassExam,ActivatorExample"编译失败
     
  • 相关阅读:
    Java多线程学习(六)Lock锁的使用
    Java多线程学习(五)线程间通信知识点补充
    Java多线程学习(四)等待/通知(wait/notify)机制
    Java多线程学习(四)等待/通知(wait/notify)机制
    Java多线程学习(三)volatile关键字
    SLAM领域资源链接
    追踪tracking
    orbslam算法框架
    Covisibility Graph
    优化
  • 原文地址:https://www.cnblogs.com/chengjun/p/4555224.html
Copyright © 2011-2022 走看看