C#:
キーワードと強制変換の包括的なガイドラインの変換インターフェイスの開発中、タイプ変換とオブジェクト変換は一般的なタスクです。 C#では、主にこの変換を実現する2つの方法があります。これら2つのテクノロジーの目標はデータ型を変更することですが、それらの間には微妙な違いがあり、プログラムの操作に影響します。 as
強制変換
as
必須の変換とは、あるオブジェクトをあるタイプから別のオブジェクトに変換することを指します。これは、文法を通じて実現できます。ここで、
は変換する変数です。たとえば、
このコードは、格納されているオブジェクトをに変換して(目标类型)对象
に変換し、変数目标类型
に割り当てることを余儀なくされます。コンバージョンが成功した場合、には、基礎となる对象
オブジェクトへの参照が含まれるようになりました。ただし、変換が失敗した場合、
<code class="language-csharp">_myCls1 = (MyClass)_MyObj;</code>
_MyObj
keywords MyClass
_myCls1
必須の変換とは異なり、キーワードはセキュリティ変換を実行し、変換が失敗した場合、_myCls1
に戻ります。これにより、異常なリスクが回避され、航空セキュリティコードの作成が可能になります。 MyClass
InvalidCastException
このコードでは、
への変換が成功した場合、変数は変換オブジェクトを参照します。変換が失敗した場合、はas
に割り当てられます。変換が故障し、値をエレガントに処理したい場合は、この方法が推奨されます。
パフォーマンスインパクトas
null
パフォーマンスの観点から、モダンなインスタント(JIT)コンパイラは、義務的な変換と
<code class="language-csharp">_myCls2 = (_MyObj as MyClass);</code>
推奨方法_MyObj
MyClass
_myCls2
どのタイプの変換方法がより優れているかは、特定のユースケースに依存します。変換が成功すると確信している場合、必須の変換はより効率的な選択を提供します。ただし、変換が失敗する可能性がある場合、または_myCls2
値を安全に処理したい場合、null
キーワードはより安全な選択です。 null
変換が成功し、最大のパフォーマンスが必要であることを強制変換を使用します。
変換が失敗する可能性がある場合、またはas
値を安全に処理したい場合は、
の使用を避けてから、強制変換またはキーワードを避けます。これは、不必要なタイプの試験を導入し、パフォーマンスを低下させる可能性があるためです。
以上がc#でcasting vs. `as`:いつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。