C#中的“这是ClassName”语句是什么意思?

时间:2018-11-17 15:06:00

标签: c#

我正在阅读一个C#项目,以在Python中实现类似的简单版本。

  • 我不是C#程序员

在代码中的某处有一个thisis语句,我无法弄清楚它们在一起是做什么的:

public abstract class PredictionTrial
{

...

   public bool DoneSuccessfully
   {
      get
      {
          return (this is PredictionTrialSuccess);
      }
   }

...

}
  • PredictionTrialSuccess是此类的子类。

我的问题是this is与get的结合在这里做什么?

2 个答案:

答案 0 :(得分:3)

如果动态类型(运行时对象的具体类型)为PredictionTrialSuccess(或其子类),则属性DoneSuccessfully将返回true

答案 1 :(得分:-1)

这意味着可以从PredictionTrialSuccess类型分配该类。

看看is keyword in C#

Python中类似的构造是:

class A(object):
    def DoneSuccessfully(self):
        return isinstance(self, PredictionTrialSuccess)

class PredictionTrialSuccess(A):
    pass