抽象基类中的C#bool属性,用于检查子实例的类型,而无需使用this关键字? [重复]

问题描述 投票:-1回答:1

[我有一个具有bool属性的抽象类A,像这样,是否有其他方法可以在不使用this关键字的情况下检查myC对象(继承类的实例)的类型?

我只是想知道是否还有其他方法可以检查继承实例的类型。

public abstract class A
    {
        public bool IsC
        {
            get
            {
               return this.GetType() == typeof(C) ? true : false;
            }
        }
    }

    public class C : A
    {
    }


public static class Program 
{

public static void Main(string[] args)
{
     C myC = new C();
     Console.WriteLine(myC.IsC); // true
}
}

}
c# types properties boolean abstract
1个回答
-1
投票

this关键字引用该类的当前实例,并且还用作扩展方法的第一个参数的修饰符。documentation source

在您的情况下,您想要做的是将当前实例的类型与定义的类型进行比较,就您个人而言,您试图做的是正确的,但是我认为可以优化代码,如下所示。] >

public abstract class A
{
    public bool IsC
    {
        get
        {
           return this.GetType() == typeof(C);
        }
    }
}

public class C : A
{
}


public static class Program 
{
   public static void Main(string[] args)
   {
      C myC = new C();
      Console.WriteLine(myC.IsC); // true
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.