首頁 > 後端開發 > C++ > C# 中可以將基底類別物件指派給衍生類別參考嗎?

C# 中可以將基底類別物件指派給衍生類別參考嗎?

Barbara Streisand
發布: 2025-01-18 11:56:12
原創
765 人瀏覽過

Can a Base Class Object Be Assigned to a Derived Class Reference in C#?

C# 中將基類物件賦值給衍生類別參考

在 C# 中,能否使用明確型別轉換將基底類別物件賦值給衍生類別參考?嘗試執行此操作會導致運行時錯誤。

解釋

不能直接將基底類別物件賦值給衍生類別參考。這是因為衍生類別引用假定它指向衍生類別的實例,而不是基底類別物件。將基類物件賦值給衍生類別參考會導致行為不一致和意外結果。

範例

考慮以下程式碼:

<code class="language-csharp">object o = new object();
string s = (string)o;
int i = s.Length;</code>
登入後複製

嘗試存取字串變數 s 的 Length 屬性將導致異常,因為 s 實際上是一個對象,而不是字串。

為了實作基底類別和衍生類別之間的轉換,可以考慮實作一個方法,該方法根據基底類型建立適當的衍生型別實例。或者,重新評估繼承層次結構以消除對這種轉換的需求。

以上是C# 中可以將基底類別物件指派給衍生類別參考嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板