在C#中检查对象的编译时类型

问题描述

考虑以下代码:

using System;
                    
public class Program
{
    public static void Main()
    {
        A m1 = new B();
        B m2 = new B();
        
        Console.Write("m1: ");
        m1.fun();
        Console.Write("m2: ");
        m2.fun();
    }
}

abstract class A
{
    public abstract void fun ();
}

class B : A
{
    public override void fun()
    {
        if (this.GetType() == typeof(A)) // ????
            Console.WriteLine("A");
        else Console.WriteLine("B");
    }
}

我希望您修改if语句,以便程序为Am1,为Bm2。 我一直在尝试与GetType()typeofisas进行各种组合,但无法完成这项工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)