Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
'is'操作符在C#中做什么?_C#_Operators - Fatal编程技术网

'is'操作符在C#中做什么?

'is'操作符在C#中做什么?,c#,operators,C#,Operators,is操作符在C#中做什么 is表达式的计算结果为true,如果 提供的表达式为非null, 并且可以将提供的对象投射到 提供的类型不会导致错误 要抛出的异常 源:该“is”运算符接受2个操作数,并返回一个布尔值,表示第一个操作数转换为第二个操作数的能力。例如: if(object1 is ClassA) //returns true if object1 is derived from ClassA or can be cast into ClassA. 抱歉,C#中没有这样的IS运算符,但是

is
操作符在C#中做什么

is表达式的计算结果为true,如果 提供的表达式为非null, 并且可以将提供的对象投射到 提供的类型不会导致错误 要抛出的异常

源:

该“is”运算符接受2个操作数,并返回一个布尔值,表示第一个操作数转换为第二个操作数的能力。例如:

if(object1 is ClassA) //returns true if object1 is derived from ClassA or can be cast into ClassA.

抱歉,C#中没有这样的IS运算符,但是IS,C#是区分大小写的。您在代码注释中犯了一个错误。“object1可以转换为ClassA”并不意味着“object1是ClassA”。这就是我检查转换可用性的方式。如果(someObject是someClass),那么我可以强制转换(someClass)someObject。但是在评论中,你说:如果(can cast)那么(object1是ClassA),这是不正确的。@最聪明的,是的,这个过程肯定是不可逆的,我不是这个意思。你理解错了。不是因为它是ClassA,而是它可以是,或者是从中派生出来的,这意味着它在技术上是ClassA(但可能更多)