[解決済み] Case/SwitchとGetTypeを使用してオブジェクトを決定する【重複】。
2022-04-23 02:58:51
質問
重複の可能性があります。
C# - 'switch on type'にこれより良い代替案はありますか?
もし、あなたが
switch
をオブジェクトのタイプに適用する場合、どのような方法があるでしょうか?
コードスニペット
private int GetNodeType(NodeDTO node)
{
switch (node.GetType())
{
case typeof(CasusNodeDTO):
return 1;
case typeof(BucketNodeDTO):
return 3;
case typeof(BranchNodeDTO):
return 0;
case typeof(LeafNodeDTO):
return 2;
default:
return -1;
}
}
そういうわけにもいかないのでしょうが、どう解決するのか気になったので。
というのは
if/else
という文は、この場合、適切なのでしょうか?
それとも、スイッチを使用して
.ToString()
をタイプに追加しますか?
解決方法は?
もし私が
本当に
しなければならない
switch
オブジェクトの種類によって、私なら
.ToString()
. しかし、私は何としても避けたい。
IDictionary<Type, int>
の方がはるかに良い。
訪問者
はやりすぎかもしれませんが、それ以外は全く問題ない解決策です。
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】Java:サブクラス下のenumでswitchステートメントを使用する
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] usingディレクティブはネームスペースの内側と外側のどちらを使うべきですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] List<T>をオブジェクトのプロパティでソートする方法
-
[解決済み】Swift。switchステートメントでクラスの型をテストする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み] スイッチオンタイプ」これ以上の代案はないのでしょうか?