国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

.NET反射的簡(jiǎn)單示例

2019-11-18 17:04:04
字體:
供稿:網(wǎng)友

(1)namespace ClassLibrarySport

{

    public abstract class Sport

    {

        PRotected string name;

        public abstract string GetName();

        public abstract string GetDuration();

    }

}

= = = = = == = == = == = == = == = == = == = == = == = == = == = == = == = == = == = =

(2)namespace ClassLibrarySomeSports//該項(xiàng)目添加了對(duì)(1)的引用

{

    public class Football : ClassLibrarySport.Sport

    {

        public Football()

        {

            name = "Football";

        }

        public override string GetName()

        {

            return name;

        }

        public override string GetDuration()

        {

            return "four 15 minute quarters";

        }

    }

}

= = = = = == = == = == = == = == = == = == = == = == = == = == = == = == = == = == = =

(3)namespace ConsoleAssemblyTest//該項(xiàng)目添加了對(duì)(1)的引用

{

    class Program

    {

        static void Main(string[] args)

        {

            Assembly assembly = Assembly.LoadFrom(@"E:/ClassLibrarySomeSports/

bin/Debug/ClassLibrarySomeSports.dll");

            Type[] types = assembly.GetTypes();

 

            Console.WriteLine("Get Type From ClassLibrarySomeSports.dll:");

            for (int i = 0; i < types.Length; i++)

            {

                Console.WriteLine(types[i].Name);

            }

 

            //使用GetConstructor()方法獲取對(duì)應(yīng)類型的構(gòu)造器,從而構(gòu)造出該類型的對(duì)象

            Console.WriteLine("Use Method GetConstructor():");

            ConstructorInfo ci = types[0].GetConstructor(new Type[0]);

            ClassLibrarySport.Sport sport = (ClassLibrarySport.Sport)ci.Invoke(new object[0]);

            Console.WriteLine(sport.GetName() + " has " + sport.GetDuration());

 

            //使用Activator.CreateInstance()方法構(gòu)造出該類型的對(duì)象

//使用assembly.CreateInstance()返回為null,??

            Console.WriteLine("Use Method CreateInstance():");

            ClassLibrarySport.Sport sport1 = (ClassLibrarySport.Sport)

Activator.CreateInstance(types[0]);

            Console.WriteLine(sport1.GetName() + " has " + sport1.GetDuration());

 

            //反射指定類型中的名稱為“GetDuration”的方法,通過Invoke()方法執(zhí)行該方法

            object objsport = Activator.CreateInstance(types[0]);

            MethodInfo method = types[0].GetMethod("GetDuration");

            object o = method.Invoke(objSport, new object[0]);

            Console.WriteLine(o as string);

 

            Console.Read();

        }

    }

}

= = = = = == = == = == = == = == = == = == = == = == = == = == = ==

Output:

Get Type From ClassLibrarySomeSports.dll:

Football

Use Method GetConstructor():

Football has four 15 minute quarters

Use Method CreateInstance():

Football has four 15 minute quarters

four 15 minute quarters

http://www.survivalescaperooms.com/KissKnife/archive/2006/08/13/475717.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 胶南市| 尖扎县| 霍林郭勒市| 马山县| 讷河市| 沂源县| 达孜县| 泰州市| 秭归县| 宝山区| 涟水县| 台东市| 普宁市| 洛宁县| 东乌珠穆沁旗| 福清市| 边坝县| 沅江市| 宁陕县| 九江县| 四平市| 庆云县| 上林县| 阳江市| 古丈县| 北票市| 乾安县| 嘉祥县| 阜新市| 彰化县| 教育| 大同市| 定边县| 海晏县| 岚皋县| 富阳市| 青岛市| 上饶市| 微山县| 四平市| 嘉峪关市|