c#反射Type_gettype示例測試

wisdomone1發表於2012-04-01
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Reflection;
namespace ConsoleApplication1
{
    class Program
    {

        static StringBuilder sb1 = new StringBuilder(3000);
        public static void Main(string[] args)
        {
            ////返回型別引用第一種方式直接用typeof,其引數就是型別
            //Type t1=typeof(double);

            //Console.WriteLine(t1.Name);
            ////fullname不含程式集,含名稱空間
            //Console.WriteLine(t1.FullName);
            //Console.WriteLine(t1.Namespace);
            //Console.WriteLine(t1.BaseType);
            //Console.WriteLine(t1.UnderlyingSystemType.ToString());
            //Console.WriteLine(t1.IsAbstract);
            //Console.WriteLine(t1.IsArray);
            //Console.WriteLine(t1.IsValueType);



            Program p1 = new Program();
            //透過類例項(物件)來呼叫gettype返回型別引用
            Type t2 = p1.GetType();
            //Console.WriteLine(t2.FullName);
            MemberInfo[] mi = t2.GetMembers();
            long[] l1 ={ 1,2,3};

            for (long sub1 = 0; sub1 <= 2;sub1++ )
            {
                object x = mi.GetValue(l1[sub1]);
                MemberInfo z = (MemberInfo)x;
                //Console.WriteLine(z.IsDefined);
                Console.WriteLine(z.Name);
            }
            //foreach (MemberInfo x in mi)
            //{
            //    //memberinfo.name方稱名稱
            //    Console.WriteLine(x.Name);
            //    //memberinfo.reflectedtype返回方法所屬的類名稱
            //    Console.WriteLine(x.ReflectedType.ToString());
            //    Console.WriteLine(x.DeclaringType.ToString());
            //     Console.WriteLine(x.GetHashCode().ToString());

            //}
            Console.ReadKey();
        }
    }
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-720124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章