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

例:

class Animal { }
class Dog : Animal { }

void PrintTypes(Animal a) {
    Console.WriteLine(a.GetType() == typeof(Animal)); // false
    Console.WriteLine(a is Animal);                   // true
    Console.WriteLine(a.GetType() == typeof(Dog));    // true
    Console.WriteLine(a is Dog);                      // true
}

Dog spot = new Dog();
PrintTypes(spot);

对于泛型:typeof(T)

T总是表达式的类型,泛型方法基本上是一组具有适当类型的方法

例:

            Animal probably_a_dog = new Dog();
            Dog definitely_a_dog = new Dog();

            Foo(probably_a_dog); // this calls Foo<Animal> and returns "Animal"
            Foo<Animal>(probably_a_dog); // this is exactly the same as above
            Foo<Dog>(probably_a_dog); // !!! This will not compile. The parameter expects a Dog, you cannot pass in an Animal.

            Foo(definitely_a_dog); // this calls Foo<Dog> and returns "Dog"
            Foo<Dog>(definitely_a_dog); // this is exactly the same as above.
            Foo<Animal>(definitely_a_dog); // this calls Foo<Animal> and returns "Animal".
            Foo((Animal)definitely_a_dog); // this does the same as above, returns "Animal"

[C#]typeof,Gettype()和is的区别的更多相关文章

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

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

  2. typeof,GetType

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

  3. 笔记16 C# typeof() & GetType()

    C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型.typeof(x)中的x,必须是具体的类名.类型名称等,不可以是变量名称:GetType( ...

  4. JavaScript中instanceof与typeof运算符的用法及区别详细解析

    JavaScript中的instanceof和typeof常被用来判断一个变量是什么类型的(实例),但它们的使用还是有区别的: typeof 运算符 返回一个用来表示表达式的数据类型的字符串. typ ...

  5. is,as,sizeof,typeof,GetType

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

  6. typeof()和instanceof的用法区别

    typeof() typeof() 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型.,typeof一般只能返回如下几个结果:number,bo ...

  7. typeof(), __typeof(), __typeof__(), -isKindOfClass:的区别

    关于  typeof()和 __typeof()  和 __typeof__() ,Stack Overflow 有一段解释,大概意思是, __typeof() .__typeof__() 是C语言的 ...

  8. typeof 与 instanceof之间的区别

    JS中会使用typeof 和 instanceof来判断一个变量是否为空或者是什么类型的. ES6规范中有7种数据类型,分别是基本类型和引用类型两大类 基本类型(简单类型.原始类型):String.N ...

  9. JavaScript中typeof和instanceof深入详解

    这次主要说说javascript的类型判断函数typeof和判断构造函数原型instanceof的用法和注意的地方. typeof 先来说说typeof吧.首先需要注意的是,typeof方法返回一个字 ...

随机推荐

  1. 关于window.onresize

    window.ss1 = function() { alert("aaa") } window.ss = function() { alert("bbb") } ...

  2. Node.js简述

    Node.js是2009年5月由Ryan Dahl 发布的服务器程序. 它封装了Google V8 JavaScript 引擎, 并将其重建为可在服务器上使用. 它旨在提供一种简单的构建可伸缩网络程序 ...

  3. CentOS7下mariadb日常管理

    在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...

  4. mvn dependency:tree的用法

    一.参考文档 https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-t ...

  5. node基础知识-常用node命令

    node中js的组成部分:ECMAScript核心+全局成员+模块系统成员 浏览器中的js组成部分:ECMAScripts核心+BOM+DOM 常用node命令 cmd中进入REPL环境:直接输入no ...

  6. 从swap说引用

    C++的引用类型是个很奇妙的存在,比如下面这个例子: #include<iostream> using namespace std; void swap(int& a, int&a ...

  7. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  8. day10_python_1124

    认知: 随着年龄阅历的变化而变化.01 去年内容回顾 *args **kwargs: 万能参数,动态参数 * 魔性用法: 函数的定义时,* ** 聚合. 函数的执行时,* ** 打散. 形参顺序: 位 ...

  9. 云硬盘性能测试工具FIO介绍

    一.云硬盘的性能衡量指标 云硬盘的性能指标一般通过以下几个指标进行衡量 IOPS:每秒的读写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的IOPS 总IOPS:每秒执行的I/O操作总次数 ...

  10. HTML5:链接与路径

    链接与路径 一.路径 绝对路径——指包含服务器协议的完全路径 相对路径——指被链接文档相对于当前文档的路径. 二.超链接<a> 1.语法: <a href=“目标”>链接文本& ...