c#基础之Type
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);
writeline方法属于类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);
}
}
参考⽂档:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论