繁体   English   中英

通过C#中的基类对象访问派生类变量

[英]Accessing derived class variable through object of base class in C#

我有如下代码Declare.cs

Class B { }
Class D1 : B { public var1 }
Class D2 : B {}
B Baseobject = new B();
if(baseobject is D1){ Console.print(B.var1) }

当我编译这种情况时,我总是得到B无法访问var1编译器错误。 如果var1始终需要放在D1是否可以解决此问题?

该对象必须是D1的实例,因此您的示例有些错误。

然后,您需要将对象投射到D1。

B baseObject = new D1();
Console.WriteLine(((D1)baseObject).var1);

首先,由于需要强制转换,因此无法编译。 你为什么需要演员? 因为您的对象引用是B类型,并且对D1类型及其方法和属性一无所知。 您需要阅读一些有关OOP基本原理的内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM