程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#反射總結

C#反射總結

編輯:C#入門知識

Reflection,中文翻譯為反射。這是.Net中獲取運行時類型信息的方式,.Net的應用程序由幾個部分:‘程序集(Assembly)’、‘模塊(Module)’、‘類型(class)’組成,而反射提供一種編程的方式,讓程序員可以在程序運行期獲得這幾個組成部分的相關信息,例如:Assembly類可以獲得正在運行的裝配件信息,也可以動態的加載裝配件,以及在裝配件中查找類型信息,並創建該類型的實例。Type類可以獲得對象的類型信息,此信息包含對象的所有要素:方法、構造器、屬性等等,通過Type類可以得到這些要素的信息,並且調用之。MethodInfo包含方法的信息,通過這個類可以得到方法的名稱、參數、返回值等,並且可以調用之。諸如此類,還有FieldInfo、EventInfo等等,這些類都包含在System.Reflection命名空間下。
一、Type類於獲取類型信息
System.Type 類對於反射起著核心的作用。當反射請求加載的類型時,公共語言運行庫將為它創建一個 Type。您可以使用 Type 對象的方法、字段、屬性和嵌套類來查找有關該類型的所有信息。
大家運行一下下面的代碼根據結果分析一下就能比較清楚的理解Type了

 

\\獲取類型信息
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass m = new MyClass();
            Type type = m.GetType();
            Console.WriteLine("類型名:" + type.Name);
            Console.WriteLine("類全名:"+type.FullName);
            Console.WriteLine("命名空間名:"+type.Namespace);
            Console.WriteLine("程序集名:"+type.Assembly);
            Console.WriteLine("模塊名:"+type.Module);
            Console.WriteLine("基類名:"+type.BaseType);
            Console.WriteLine("是否類:"+type.IsClass);
            Console.WriteLine("類的公共成員:");
            MemberInfo[] memberInfos = type.GetMembers();//得到所有公共成員
            foreach (var item in memberInfos)
            {
                Console.WriteLine("{0}:{1}",item.MemberType,item);
            }
        }
        
    }
    class MyClass
    {
        public string m;
        public void test()
        { }
        public int MyProperty { 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved