C# as is 强转 总结

2019-08-03  本文已影响0人  86a262e62b0b

该文为总结,具体参考以下:

一. is运算符

  1. E is T
int i = 27;
Console.WriteLine(i is System.IFormattable);  // output: True

object iBoxed = i;
Console.WriteLine(iBoxed is int);  // output: True
Console.WriteLine(iBoxed is long);  // output: False
  1. E is T v

二. as运算符

E as T

三. 各种运算符、转换之间的区别

1. as和强制转换之间的区别
2. is和as的区别
E is T ? (T)(E) : (T)null
3. typeof和Object.GetType 的区别
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
    }
}

三. 补充

上一篇 下一篇

猜你喜欢

热点阅读