【C#操作符】typeof 和 is 运算符执行的类型检查之间的差异

typeof 运算符也能用于公开的泛型类型。具有不止一个类型参数的类型的规范中必须有适当数量的逗号。不能重载 typeof 运算符。

 

is 可以检测和父类是否兼容,typeof责不能

public class Animal { }

public class Giraffe : Animal { }

public static class TypeOfExample
{
    public static void Main()
    {
        object b = new Giraffe();
        Console.WriteLine(b is Animal);  // output: True
        Console.WriteLine(b.GetType() == typeof(Animal));  // output: False

        Console.WriteLine(b is Giraffe);  // output: True
        Console.WriteLine(b.GetType() == typeof(Giraffe));  // output: True
    }
}

 

posted @ 2021-10-23 23:43  小林野夫  阅读(157)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/