c#基礎之Type


官方文檔:https://msdn.microsoft.com/zh-cn/library/system.type%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

C#中通過Type類可以訪問任意數據類型信息。 

system.Type類以前把Type看作一個類,但它實際上是一個抽象的基類。

只要實例化了一個Type對象,實際上就實例化了Typc的一個派生類。

盡管一般情況下派生類只提供各種Type方法和屬性的不同重載,但是這些方法和屬性返回對應數據類型的正確數據,Type有與每種數據類型對應的派生類。

Type是許多反射功能的入口 。注意,可用的屬性都是只讀的:可以使用Type確定數據的類型,但不能使用它修改該類型

 

1.獲取Type

 有3種方式:
  a.使用typeof運算符,如Type t = typeof(int);
  b.使用GetType()方法,如int i;Type t = i.GetType();
  c.使用Type類的靜態方法GetType(),如Type t =Type.GetType("System.Double");


2.Type的屬性:
  Name:數據類型名;
  FullName:數據類型的完全限定名,包括命名空間;
  Namespace:數據類型的命名空間;
  BaseType:直接基本類型;
  UnderlyingSystemType:映射類型;


3.Type的方法:
  GetMethod():返回一個方法的信息;
  GetMethods():返回所有方法的信息。

GetMember()和GetMembers()方法返回數據類型的任何成員或所有成員的詳細信息,不管這些成員是構造函數、屬性和方法等。

public static void Main()
        {
            //基本數據類型
            Type intType = typeof(int);
            
            //屬性
            Console.WriteLine("intType.Name = " + intType.Name);
            Console.WriteLine("intType.FullName = " + intType.FullName);
            Console.WriteLine("intType.Namespace = " + intType.Namespace);
            Console.WriteLine("intType.IsAbstract = " + intType.IsAbstract);
            Console.WriteLine("intType.IsClass = " + intType.IsClass);
            Console.WriteLine("intType.IsEnum = " + intType.IsEnum);
            Console.WriteLine("intType.IsPrimitive = " + intType.IsPrimitive);
            Console.WriteLine("intType.IsValueType = " + intType.IsValueType);

            //方法
            MethodInfo[] methods = intType.GetMethods();
            foreach (MethodInfo method in methods)
            {
                Console.WriteLine(method.DeclaringType + " " + method.MemberType + " " + method.Name);
            }
        }

 

 

 

參考文檔:

https://www.cnblogs.com/kingdom_0/articles/2040855.html

http://www.knowsky.com/604653.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM