オブジェクト指向プログラミングでは、オブジェクトタイプの変換は一般的な操作です。 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 サイトの他の関連記事を参照してください。