【问题标题】:What does the `is` operator do in C#?`is` 运算符在 C# 中的作用是什么?
【发布时间】:2011-06-11 21:52:57
【问题描述】:

is 运算符在 C# 中的作用是什么?

【问题讨论】:

  • AFAIK C#中没有这样的IS运算符,但是is,C#区分大小写。

标签: c# operators


【解决方案1】:

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

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

【讨论】:

  • 你在代码注释中写错了。 “object1 可以转换为 ClassA”并不意味着“object1 是 ClassA”。
  • 这就是我检查演员表可用性的方式。如果 (someObject is someClass) 那么我可以转换 (someClass)someObject.
  • 但是在评论中,你说:if (can cast) then (object1 is ClassA),这是不正确的。
  • @Smartest,是的,这个过程肯定是不可逆的,我不是那个意思。你理解错了。
  • 嗯,它不是 ClassA,但它可能是,或者派生自,这意味着它在技术上是 ClassA(但可能更多)
【解决方案2】:

一个 is 表达式的计算结果为 true if 提供的表达式是非空的, 并且提供的对象可以转换为 提供的类型而不引起 抛出异常。

来源:http://msdn.microsoft.com/en-us/library/scekt9xw(v=vs.80).aspx

【讨论】:

    猜你喜欢
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多