ホームページ > バックエンド開発 > C++ > c#でのキャスト:「 'as' vs.明示的なキャストをいつ使用するか?

c#でのキャスト:「 'as' vs.明示的なキャストをいつ使用するか?

Mary-Kate Olsen
リリース: 2025-02-01 09:36:10
オリジナル
853 人が閲覧しました

Casting in C#: When to Use 'as' vs. Explicit Casting?

clrのタイプ変換と 'as' keyword

オブジェクト指向プログラミングでは、オブジェクトタイプの変換は一般的な操作です。 CLRは、 'キーワードと明示的な変換の2つの主要な変換方法を提供します。

'as' keyword

''キーワード実行タイプ変換、後継者は変換オブジェクトを返し、nullを返すことができません。通常、オブジェクトを特定のサブクラスまたはインターフェイスの実装に変換するために使用されます。たとえば、

「obj」が「myclass」のインスタンスである場合、「コンポーネント」は「myclass」オブジェクトへの参照を返します。

<code class="language-csharp">object obj = new MyClass();
MyClass cls = obj as MyClass;</code>
ログイン後にコピー
微分変換

文法の使用を表現します。オブジェクトを指定されたタイプに変換すると、変換が無効であり、例外をスローします。たとえば、

表現型変換は、変換オブジェクトタイプが一致しない場合にランタイムエラーを引き起こす可能性があります。 (cast-type)

パフォーマンスに関する考慮事項object obj = new MyClass(); MyClass cls = (MyClass)obj;

セマンティックの違い

2つの方法の主な違いは、 'キーワードチェックオブジェクトタイプであり、変換が無効であり、明示的な変換が変換されることを強制しますが、障害は異常にスローされます。この違いは、オブジェクトタイプが不確かな場合に重要です(反射の使用など)。 推奨方法

通常、明示的な変換ではなく「キーワード」として使用することをお勧めします。より安全で、パフォーマンスの損失は重要ではありません。これは、オブジェクトタイプが未知または動的な変更である場合に特に役立ちます。

以上がc#でのキャスト:「 'as' vs.明示的なキャストをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート