c#中基类对象中可用的子类属性

时间:2017-12-20 15:18:04

标签: c#

这里我有以下代码,其中我创建了两个A类和B类。  然后在main方法中,我创建了类的对象并将子对象分配给父对象。我不明白它在c#中是如何工作的,任何人都能解释一下吗?

 class Program
{
    static void Main(string[] args)
    {
        A objA = new A();
        B objB = new B();
        objA = objB;


        Console.ReadLine();
    }

}

public class A
{
    public string ABC { get; set; }

    public string XYZ { get; set; }

    public string lmn { get; set; }


}

public class B : A
{
    private string vvmdn { get; set; }

    public string mkkk { get; set; }

}

enter image description here

1 个答案:

答案 0 :(得分:1)

引用objA指向内存中的B对象,调试器显示此对象的所有属性。

您可以使用反射https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/reflection自行在运行时访问对象的非公共成员。这基本上就是Visual Studio中的调试器。

引用objA的类型确实是A,但它在内存中指向的实际对象是B