您的位置:首页 > 编程语言 > C#

C#  GetType()与Typeof()的区别

2014-06-07 17:47 423 查看
GetType()与Typeof()区别GetType()返回的是对象的类名;案例1:
int i = 5;

Console.WriteLine(i.GetType());//System.Int32
var x = 127.25m;

Console.WriteLine(x.GetType());//System.Decimal

案例2:


namespace _2011._12._15{
class Program{
static void Main(string[] args){Test testone = new Test();
string s = testone.GetType().ToString();Console.WriteLine(s);//_2011._12._15.Test 命名空间的Test类
}}
class Test{}}

 

Typeof()返回的是类名的对象,也可以返回类名,也可以返回特定类内部的方法和字段


namespace _2011._12._15{
class Program{
static void Main(string[] args){Test testone = new Test();
string s = testone.GetType().ToString();Console.WriteLine("GetType():");Console.WriteLine(s);//_2011._12._15.Test 命名空间的Test类Type type = typeof(Test);Console.WriteLine("Typeof():");Console.WriteLine(type);//_2011._12._15.Test 命名空间的Test类
Console.WriteLine();MethodInfo[] methodinfo = type.GetMethods();Console.WriteLine(methodinfo.GetType());//System.Reflection.MethodInfo[]
foreach (var i in methodinfo){Console.WriteLine(i);//输出Test类的所有方法及继承Object的实例方法
}Console.WriteLine();Console.WriteLine();Console.WriteLine();Console.WriteLine();MemberInfo[] memberinfo = type.GetMembers();Console.WriteLine(memberinfo.GetType());
foreach(var i in memberinfo){Console.WriteLine(i);//输出Test类字段和System.type类型
}}}


class Test{private int age;
public string name;
public void speaking(){Console.WriteLine("Welcome to cnblog!");}public void writing(){Console.WriteLine("Please writing something!");}}}

 

运行结果:


GetType():_2011._12._15.TestTypeof():_2011._12._15.TestSystem.Reflection.MethodInfo[]Void speaking()Void writing()System.Type GetType()System.String ToString()Boolean Equals(System.Object)Int32 GetHashCode()System.Reflection.MemberInfo[]Void speaking()Void writing()System.Type GetType()System.String ToString()Boolean Equals(System.Object)Int32 GetHashCode()Void .ctor()System.String name

 

 

 

转自:http://www.cnblogs.com/IAmBetter/archive/2011/12/15/2288990.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: