[解決済み] キャスティング (NewType) vs. NewTypeとしてのオブジェクト [重複].
2023-04-01 19:38:29
質問
実際、この2つのキャストの違いは何なのでしょうか?
SomeClass sc = (SomeClass)SomeObject;
SomeClass sc2 = SomeObject as SomeClass;
通常、どちらも指定された型への明示的なキャストであるべきではないでしょうか?
どのように解決するのですか?
前者はソース型をターゲット型にキャストできない場合、例外が発生します。後者はsc2がNULL参照になりますが、例外は発生しません。
[編集]
私の当初の回答は、確かに最も顕著な違いですが、Eric Lippert氏のように が指摘しているように が指摘するように、これだけではありません。他の違いは以下の通りです。
- 値として 'null' を受け入れない型にキャストするために 'as' 演算子を使用することはできない
- as' を使って 変換 には使えません。例えば、数値を別の表現に変換する場合です(float から int など)。
そして最後に、'as' 対キャスト演算子を使用すると、 "これが成功するかどうかわからない。
関連
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] AddTransient、AddScoped、AddSingleton サービスの相違点
-
[解決済み] IEnumerable<T> と IQueryable<T> を比較する。
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] C#で文字を繰り返し表示する最適な方法
-
[解決済み] InvariantCultureとOrdinalの文字列比較の違いについて
-
[解決済み] C#のArrayListとList<>の比較
-
[解決済み] CLRのキャストと'as'キーワードの使用について
-
[解決済み] .NETのCultureInfoのCurrentCultureとCurrentUICultureのプロパティの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み] ダイレクトキャスト vs 'as'演算子?
-
[解決済み] CLRのキャストと'as'キーワードの使用について