这里我有以下代码,其中我创建了两个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; }
}
答案 0 :(得分:1)
引用objA
指向内存中的B
对象,调试器显示此对象的所有属性。
您可以使用反射https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/reflection自行在运行时访问对象的非公共成员。这基本上就是Visual Studio中的调试器。
引用objA
的类型确实是A
,但它在内存中指向的实际对象是B
。