一级毛片免费不卡在线视频,国产日批视频免费在线观看,菠萝菠萝蜜在线视频免费视频,欧美日韩亚洲无线码在线观看,久久精品这里精品,国产成人综合手机在线播放,色噜噜狠狠狠综合曰曰曰,琪琪视频

net學(xué)習(xí)心得6

時(shí)間:2023-04-26 11:41:01 心得體會(huì) 我要投稿
  • 相關(guān)推薦

net學(xué)習(xí)心得(6)

1.反射:反射是.net中的重要機(jī)制,通過反射可以在運(yùn)行時(shí)獲得.net中每一個(gè)類型,包括類、結(jié)構(gòu)、委托和枚舉的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等。有了反射,既可以對(duì)每一個(gè)類型了如指掌。

net學(xué)習(xí)心得(6)

下面來演示一下反射的實(shí)例

(1)新建一個(gè)類庫項(xiàng)目。在解決方案上單擊右鍵選擇添加“新建項(xiàng)目”,在彈出來的框中選擇“類庫”,在下面名字欄中輸入ClassLib。然后刪除class1類,新添加一個(gè)類“ClassPerson”,添加如下代碼:

namespace ClassLib

{

    public class ClassPerson

    {

        public ClassPerson():this(null)

        {

        }

        public ClassPerson(string strname)

        {

            name = strname;

        }

        private string name;

        private string sex;

        private int age;

        public string Name

        {

            get { return name; }

            set { name = value; }

        }

        public string Sex

        {

            get { return sex; }

            set { sex = value; }

        }

        public int Age

        {

            get { return age; }

            set { age = value; }

        }

        public void SayHello()

        {

            if (null==name)

                Console.WriteLine("hello World");

            else

                Console.WriteLine("Hello," + name);  

        }

    }

}

添加完之后編譯生成一下,就會(huì)在這個(gè)類庫項(xiàng)目中的Bin\Debug中有一個(gè)ClassLib.dll文件。然后添加一個(gè)控制臺(tái)應(yīng)用程序。引入System.Reflaction的命名空間。添加的代碼如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Reflection;//添加反射的命名空間

namespace ConsoleApplication4

{

    public class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("列出程序集中的所有類型");

            Assembly ass = Assembly.LoadFrom("ClassLib.dll");

            Type[] mytype = ass.GetTypes();

            Type ClassPerson = null;

            foreach (Type p in mytype)

            {

                Console.WriteLine(p.Name);

                if (p.Name=="ClassPerson")

                {

                    ClassPerson = p;

                }

            }

            Console.WriteLine("列出ClassPersonl類中的所有的方法");

            MethodInfo[] md = ClassPerson.GetMethods();

            foreach(MethodInfo m in md)

            {

                Console.WriteLine(m.Name);

            }

            Console.WriteLine("實(shí)例化ClassPerson類,并調(diào)用SayHello方法");

            object obj = Activator.CreateInstance(ClassPerson);

            object objname=Activator.CreateInstance(ClassPerson,"飛鷹");

            MethodInfo mysayhello = ClassPerson.GetMethod("SayHello");

            mysayhello.Invoke(obj, null);//無參數(shù)構(gòu)造函數(shù)

            mysayhello.Invoke(objname, null);//有參構(gòu)造函數(shù)

            Console.ReadKey();      

        }

    }

}

運(yùn)行之后的結(jié)果是:

列出程序集中的所有類型

ClassPerson

列出ClassPersonl類中的所有的方法

get_Name

set_Name

get_Sex

set_Sex

get_Age

set_Age

SayHello

ToString

Equals

GetHashCode

GetType

實(shí)例化ClassPerson類,并調(diào)用SayHello方法

hello World

Hello,飛鷹

2.using的作用

(1)引入命名空間,如:using System。

(2)using別名。

格式:using 別名=包括詳細(xì)命名空間信息的具體的類型

 例如:在兩個(gè)命名空間(nameSpace1,nameSpace2)里各有一個(gè)MyClass類,這時(shí)可以這樣引入命名空間,

using aclass=nameSpace1.MyClass;

using bclass=nameSpace2.MyClass;

實(shí)例化時(shí):

aclass my1=new aclass;

bclass my2=new bclass;

(3)using定義范圍

即時(shí)釋放資源,在范圍結(jié)束時(shí)處理對(duì)象。例如:

using(Class1 cls1=new Class1())

{

}

在這個(gè)代碼段結(jié)束時(shí)會(huì)觸發(fā)cls1的Dispose方法釋放資源。

相關(guān)文章:

學(xué)習(xí).net心得

相關(guān)專題:[電腦][計(jì)算機(jī)]

【net學(xué)習(xí)心得6】相關(guān)文章:

Net Worth:資本凈值05-04

ASP.NET技術(shù)選型心得04-25

asp.net網(wǎng)上花店畢業(yè)設(shè)計(jì)開題報(bào)告04-27

ASP.NET的網(wǎng)站新聞管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) -文秘文書12-15

《榜樣6》觀看學(xué)習(xí)心得11-20

Away from Net-bar Campaign遠(yuǎn)離網(wǎng)吧作文(通用15篇)04-10

《榜樣6》學(xué)習(xí)心得(精選16篇)07-20

學(xué)校學(xué)生學(xué)習(xí)心得6篇03-11

職業(yè)禮儀學(xué)習(xí)心得6篇03-14

新課改培訓(xùn)學(xué)習(xí)心得6篇03-27