来自reference:
如果表达式是,则is关键字会导致编译时警告 已知永远是真实的。
我试图创建一个例子:
class MyClass
{
public void method(MyClass c)
{
if (c is MyClass)
{
//...
}
if (c is Object)
{
//...
}
}
}
但我没有收到任何警告。为什么呢?
有人可以给我看一个示例,我会收到警告(因为表达式始终为真)?
它适用于虚假。
答案 0 :(得分:7)
is
运算符如果值为null
则返回false,因此如果您调用method(null)
,则不会输入if
- 阻止。
但是,如果MyClass
实际上是struct
(即不可为空),则会产生警告。