ホームページ >バックエンド開発 >C++ >C# で基本クラス オブジェクトを派生クラス参照に割り当てることはできますか?

C# で基本クラス オブジェクトを派生クラス参照に割り当てることはできますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-18 11:56:12771ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。