C#中typeof 与GetType()的区别
类别:编程学习 浏览量:18601
时间:2014-1-19 C#中typeof 与GetType()的区别
C#中typeof 与GetType()的区别typeof是运算符,获得某一类型的System.Type对象;GetType是方法,获取当前实例的类型.
一、typeof 与GetType()的区别
1、Typeof是运算符而是方法
2、GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用(初始化以后)
3、Typeof的参数只能是int,string,String,自定义类型,且不能是实例
4、GetType()和typeof都返回System.Type的引用.
5、TypeOf():得到一个Class的Type
6、 GetType():得到一个Class的实例的Type
二、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("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.Test
Typeof():
_2011._12._15.Test
System.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
热门推荐
- mysql各种锁详解(MySQL 查看事务和锁情况的常用语句分享)
- sqlserver中根据日期时间获取秒数(sql server编写通用脚本实现获取一年前日期的方法)
- django框架教程第100讲(详解Django+Vue+Docker搭建接口测试平台实战)
- python中统计一个字符出现的次数(Python统计一个字符串中每个字符出现了多少次的方法字符串转换为列表再统计)
- apache搭建php环境(Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合)
- navicat不能连接到mysql报错2013(Navicat连接SQL Server数据:报错08001-命名管道提供程序的完美解决方法)
- python 摄像头运用(使用Python控制摄像头拍照并发邮件)
- 云服务器性能怎么判断(怎么判断云服务器适合自己的企业呢?)
- WCF NetTcpBinding 绑定
- 云服务备份后怎么恢复数据(云服务器的数据被删除还能恢复吗?)