来自参考:
如果已知表达式始终为true,则is关键字会导致编译时警告.
我试图创建一个例子:
class MyClass
{
public void method(MyClass c)
{
if (c is MyClass)
{
//...
}
if (c is Object)
{
//...
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何警告.为什么?
有人能告诉我一个例子,我得到一个警告(因为表达式始终是真的)?
它适用于虚假.
该is运营商将返回false,如果该值null,因此,如果调用method(null)它不会进入任何if-块.
但是,如果MyClass实际上是一个struct(即不可为空),这将产生警告.