簡體   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