違いは何ですか
string url =(string)data AND string url = data as string;
どちらがより良い方法ですか?
InvalidCastException
最初の構文は、キャストが失敗した場合にをスローしますが、変数が文字列でないas
場合、演算子はnullを返します。data
どちらがより良い方法ですか?
それはあなたが達成しようとしていることに依存します。
オブジェクトを特定のタイプにキャストas
する試みと考えてください。失敗した場合、結果の変数はを保持しnull
ます。一方、直接キャストは1 way ticket
キャストであり、失敗すると例外がスローされます。
基本的に、オブジェクトを特定のタイプにキャストできる場合はまったく同じことを行いますが、キャストが無効な場合、一方は例外をスローし、もう一方は「正常に失敗」します。
どちらを使用するかは、実際にはシナリオによって異なります。変数がコードの不可欠な部分である場合(つまり、キャストが失敗した場合に続行するコードを続行する意味がない場合)、直接キャストを使用して例外を処理します。ただし、例外をスローせず、null値を処理することも非常に役立つ場合があります。
キーワードは防御キャストであるため、キャストに例外がある場合でも例外をスローしません