c#強制タイプ変換と
as
キーワードの使用です。これら2つの方法の違いを理解することは、効果的なコードの最適化とエラー防止に不可欠です。 as
as
:義務型変換には、オブジェクトのタイプを必要なタイプに明示的に変換することが含まれます。 グラマーを使用します。ここで、はターゲットタイプを表します。
(Type)
Type
キーワード(隠された変換)
キーワードは、オブジェクトを互換性のあるタイプに変換しようとします。コンバージョンが失敗した場合、に戻ります。文法はas
で、はターゲットタイプも表します。 as
null
コストとパフォーマンス効果object as Type
Type
最新のインスタント(JIT)コンパイラは、義務型変換と
as
強制タイプ変換を使用してください:
特定の変換を確認してください:必須のタイプ変換は、変換が無効なときに異常を引き起こすため、成功する変換を確実にすることができます。 治療異常:必須のタイプの変換によって引き起こされる異常をキャプチャすることにより、開発者は一致しないタイプを処理し、正しいエラーを確保することができます。
、など)、as
キーワードは特に便利です。コンバージョンが失敗した場合、潜在的な間違いを避けるためにに戻ります。
bool?
int?
as
コード例null
as
インスタンスであることが保証され、<code class="language-csharp">public interface IMyInterface { void AMethod(); } public class MyClass : IMyInterface { public void AMethod() { /* Implementation */ } } public class Implementation { IMyInterface _myInterface; MyClass _myClass1; MyClass _myClass2; public Implementation() { _myInterface = new MyClass(); _myClass1 = (MyClass)_myInterface; // 强制类型转换 _myClass2 = _myInterface as MyClass; // 'as' 关键字 } }</code>結論
必須のタイプ変換と_myClass1
キーワードの選択は、特定の使用シナリオに依存します。強制タイプの変換は、確実性と異常な治療を提供し、MyClass
キーワードは空のタイプとタイプの互換性チェックにより適しています。ほとんどの場合、最新のJITコンパイラは、これら2つの方法を最適化して同じパフォーマンスを得るため、主要なパフォーマンス損失に関する懸念を排除します。 as
以上がc#でcasting vs. 'as' as as:いつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。