c#中的Type類


  Type類,用來包含類型的特性。對於程序中的每一個類型,都會有一個包含這個類型的信息的Type類的對象,類型信息包含數據,屬性和方法等信息。

1.生成Type對象


      有兩種方法可以生成Type類的對象:一種是Typeof(類名),一種是對象調用GetType()函數。

  Type type = typeof(Person);

  Person person = new Person();
  Type type2 = person.GetType();


2.獲取類的信息


//類的名稱
string name = type.Name;
//類的命名空間
string space = type.Namespace;
//類的程序集
Assembly assembly = type.Assembly;
//類的共有字段
FieldInfo[] fieldInfos = type.GetFields();
//類的屬性
PropertyInfo[] propertyInfos = type.GetProperties();
//類的方法
MethodInfo[] methodInfos = type.GetMethods();


3.代碼實例

using System;
using System.Reflection;

namespace ConsoleApp2
{
public class Person
{
public int Id;
public string Name;
public int Age { get; set; }
public string Department { get; set; }

public void Print()
{
string str = string.Format("{0} {1} {2} {3}", Id, Name, Age, Department);
Console.WriteLine(str);
}
}
class Program
{
static void Main(string[] args)
{
Person person = new Person();
Type type = person.GetType();

//類的名稱
Console.WriteLine("類的名稱: " + type.Name); 
//類的命名空間
Console.WriteLine("類的命名空間: " + type.Namespace);

//類的共有字段
Console.Write("類的共有字段: ");
FieldInfo[] fieldInfos = type.GetFields();
foreach (FieldInfo info in fieldInfos)
{
Console.Write(info.Name + " ");
}
Console.WriteLine();

//類的屬性
Console.Write("類的屬性: ");
PropertyInfo[] propertyInfos = type.GetProperties();
foreach (PropertyInfo info in propertyInfos)
{
Console.Write(info.Name + " ");
}
Console.WriteLine();

//類的方法
Console.Write("類的方法: ");
MethodInfo[] methodInfos = type.GetMethods();
foreach (MethodInfo info in methodInfos)
{
Console.Write(info.Name + " ");
}
Console.WriteLine();

//類的程序集
Assembly assembly = type.Assembly;
Console.WriteLine("類的程序集: " + assembly.FullName);

//當前程序集下所有的類型
Console.Write("當前程序集下所有的類型: ");
Type[] types = assembly.GetTypes();
foreach (Type item in types)
{
Console.Write(item + " ");
}
Console.WriteLine();

Console.ReadKey();
}
}
}

 


免責聲明!

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



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