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

C#中typeof 与GetType()的用法

2014-01-20 12:45 295 查看
一、typeof 与GetType()的区别

1、Typeof是运算符而是方法

2、GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用(初始化以后)

3、Typeof的参数只能是int,string,String,自定义类型,且不能是实例

4、GetType()和typeof都返回System.Type的引用.

 

 

typeof 与GetType()的实例

 

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!");
}
}
}


 

 

参考资料:      C#中typeof 与GetType()的区别      http://www.studyofnet.com/news/284.html

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  typeof GetType