C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称;GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用

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

C# 代码   复制

int i = 5;

Console.WriteLine(i.GetType());//System.Int32

var x = 127.25m;

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

实例2:

 
C# 代码   复制

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# 代码   复制

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

笔记16 C# typeof() & GetType()的更多相关文章

  1. Ext.Net学习笔记16:Ext.Net GridPanel 折叠/展开行

    Ext.Net学习笔记16:Ext.Net GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候 ...

  2. C# typeof Gettype is as &拆箱 装箱

    有时候,我们不想用值类型的值,就是想用一个引用..Net提供了一个名为装箱(boxing)的机制,它允许根据值类型来创建一个对象,然后使用对这个新对象的一个引用. 首先,回顾两个重要的事实,1.对于引 ...

  3. SQL反模式学习笔记16 使用随机数排序

    目标:随机排序,使用高效的SQL语句查询获取随机数据样本. 反模式:使用RAND()随机函数 SELECT * FROM Employees AS e ORDER BY RAND() Limit 1 ...

  4. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  5. typeof,GetType

    typeof: 是运算符,获得某一类型的 System.Type 对象. Int32 t = new Int32(); Type t = typeof(int); GetType: 是方法,获取当前实 ...

  6. is,as,sizeof,typeof,GetType

    这几个符号说来也多多少少的用过,今天就根据ProC#的讲述来总结一下:   1. IS:    检查变量类型是否与指定类型相符,返回True ,False.不报错.    老实说,我没怎么用过.看看下 ...

  7. [C#]typeof,Gettype()和is的区别

    typeof 参数是一个类型名称,比如你自己编写的一个类 GetType()是类的方法,继承自object,返回该实例的类型 is 用来检测实例的兼容性(是否可以相互转换) 例: class Anim ...

  8. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  9. Linux实战教学笔记16:磁盘原理

    第十五节 磁盘原理 标签(空格分隔): Linux实战教学笔记 1,知识扩展 非脚本方式的一条命令搞定批量创建用户并设置随机10位字母数字组合密码. 1.1 sed的高级用法 [root@chensi ...

随机推荐

  1. Welcome-to-Swift-14构造过程(Initialization)

    构造过程是为了使用某个类.结构体或枚举类型的实例而进行的准备过程.这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务. 构造过程是通过定义构造器(Initializers)来实 ...

  2. CSS中元素水平居中和垂直居中的方法

    #CSS中水平居中和垂直居中的方法 一. 水平居中 1.行内元素(文本,图片等) 如果被设置元素为文本.图片等行内元素时,可以通过给父元素设置` text-align:center;` 来实现 2.定 ...

  3. UVa——540Team Queue(STL练习map、queue数组的综合使用)

    Team Queue Time Limit:                                                        3000MS                 ...

  4. BZOJ1064 [Noi2008]假面舞会 【dfs】

    题目 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办方会把此编号告诉拿 ...

  5. IBM QMF下载

    官网下载页面: http://www-01.ibm.com/support/docview.wss?uid=swg27009383 官方BBS: https://w3-connections.ibm. ...

  6. 马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  7. 切糕(bzoj 3144)

    Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x, ...

  8. Django迁移数据库

    我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建 为了让 Django 完成翻译,创建 ...

  9. MSB与LSB Big Endian Little Endian

    Most Significant Bit, Last(Least) Significant Bit 最高有效位(MSB) 指二进制中最高值的比特.在16比特的数字音频中,其第1个比特便对16bit的字 ...

  10. 安装apache2.4和php7.1的方法记录

    下载扩展 这是PHP官方扩展下载的地址 http://pecl.php.net 点击下载dll文件,放到php的ext目录. 看这个说明下载你PHP版本支持的版本.