国产探花免费观看_亚洲丰满少妇自慰呻吟_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://m.survivalescaperooms.com/KissKnife/archive/2006/08/13/475717.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广德县| 历史| 景谷| 高青县| 祁门县| 古蔺县| 东丰县| 安顺市| 叙永县| 海安县| 保定市| 于田县| 辽源市| 保靖县| 东平县| 房山区| 东莞市| 南通市| 双流县| 壶关县| 白河县| 伊金霍洛旗| 陕西省| 蒙阴县| 西峡县| 佛坪县| 竹北市| 奉化市| 凤冈县| 徐闻县| 沂源县| 依安县| 宝山区| 龙泉市| 读书| 新竹县| 乐清市| 舟曲县| 鹤壁市| 慈溪市| 思茅市|