可能性の重複としてOBJ対:私はC#でのキャストの2種類の方法を見てきました
casting vs using the 'as' keyword in the CLRC#の異なる方法 - (T)は、obj T
。例えば
:
MyObj foo = (MyObj) bar; // this is what I see most of the times
MyObj foo = bar as MyObj; // I do see this sometimes
- だから、基本的な違いは何ですか?
style 1
とstyle 2
キャスティングの固有の名前は何ですか?- 何を使用するかはどのように決定するのですか?
- パフォーマンスに大きな問題はありますか?
- このトピックに関連するその他の情報はありますか?
キャストが無効である場合は、このに探してくれてありがとうたくさん:)
キャストは含まれず、キャストと同じ構文を使用する型変換演算子については言及していませんでした。 –
@Merlyn:それでは、ありがとうございます。 :) @pst:クリーンアップありがとう! – Mehrdad
'foo = bar as SomeType;は' if(bar is SomeType){foo =(SomeType)} barよりも高速です。 } '、型は一度だけチェックされるためです。そして、try {foo =(SomeType)bar}よりもはるかに高速です。 } catch(InvalidCastException){} '変換が失敗した場合、例外は非常に高価です。 – Sven