[解決済み] C# で System.Object を `bool` に安全にキャストするにはどうしたらいいですか?
2023-08-21 21:24:01
質問
を抽出しています。
bool
の値を抽出しています。
は
as
演算子は参照型に対してのみ使用できます。
as
へのセーフキャストを試みるために
bool
:
// This does not work: "The as operator must be used with a reference type ('bool' is a value type)"
object rawValue = map.GetValue(key);
bool value = rawValue as bool;
が発生することなく、オブジェクトを安全に値型にキャストできるような、似たようなことはないでしょうか?
InvalidCastException
の可能性なしにオブジェクトを値型に安全にキャストすることはできますか?
どのように解決するのですか?
2つの選択肢があります...少し驚くような性能です。
-
冗長なチェック。
if (rawValue is bool) { bool x = (bool) rawValue; ... }
-
null可能な型を使用する。
bool? x = rawValue as bool?; if (x != null) { ... // use x.Value }
驚くべきは のパフォーマンスが、最初の .
C# 7では、このためにパターンマッチを使用することができます。
if (rawValue is bool value)
{
// Use value here
}
なお、最終的には
value
の後に、スコープ内の(しかし確実に割り当てられているわけではない)
if
ステートメントの後に
関連
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] NULL-COALESCING 演算子のカスタム暗黙変換の不思議な挙動
-
[解決済み] C#で演算子==はジェネリック型に適用できない?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】"as "とnullable型によるパフォーマンスの驚き