精品一区二区中文在线,无遮挡h肉动漫在线观看,国产99视频精品免视看9,成全免费高清大全

net學習心得6

時間:2023-04-26 11:41:01 心得體會 我要投稿
  • 相關推薦

net學習心得(6)

1.反射:反射是.net中的重要機制,通過反射可以在運行時獲得.net中每一個類型,包括類、結構、委托和枚舉的成員,包括方法、屬性、事件,以及構造函數等。有了反射,既可以對每一個類型了如指掌。

net學習心得(6)

下面來演示一下反射的實例

(1)新建一個類庫項目。在解決方案上單擊右鍵選擇添加“新建項目”,在彈出來的框中選擇“類庫”,在下面名字欄中輸入ClassLib。然后刪除class1類,新添加一個類“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);  

        }

    }

}

添加完之后編譯生成一下,就會在這個類庫項目中的Bin\Debug中有一個ClassLib.dll文件。然后添加一個控制臺應用程序。引入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("實例化ClassPerson類,并調用SayHello方法");

            object obj = Activator.CreateInstance(ClassPerson);

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

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

            mysayhello.Invoke(obj, null);//無參數構造函數

            mysayhello.Invoke(objname, null);//有參構造函數

            Console.ReadKey();      

        }

    }

}

運行之后的結果是:

列出程序集中的所有類型

ClassPerson

列出ClassPersonl類中的所有的方法

get_Name

set_Name

get_Sex

set_Sex

get_Age

set_Age

SayHello

ToString

Equals

GetHashCode

GetType

實例化ClassPerson類,并調用SayHello方法

hello World

Hello,飛鷹

2.using的作用

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

(2)using別名。

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

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

using aclass=nameSpace1.MyClass;

using bclass=nameSpace2.MyClass;

實例化時:

aclass my1=new aclass;

bclass my2=new bclass;

(3)using定義范圍

即時釋放資源,在范圍結束時處理對象。例如:

using(Class1 cls1=new Class1())

{

}

在這個代碼段結束時會觸發cls1的Dispose方法釋放資源。

相關文章:

學習.net心得

相關專題:[電腦][計算機]

【net學習心得6】相關文章:

Net Worth:資本凈值05-04

ASP.NET技術選型心得04-25

asp.net網上花店畢業設計開題報告04-27

ASP.NET的網站新聞管理系統設計與實現 -文秘文書12-15

《榜樣6》觀看學習心得11-20

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

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

學校學生學習心得6篇03-11

職業禮儀學習心得6篇03-14

新課改培訓學習心得6篇03-27