重複の可能性あり:
C# - 「スイッチオン型」よりも優れた代替手段はありますか?
あるタイプのオブジェクトをオンにしたい場合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()
タイプに追加しますか?
ベストアンサー1
これは、独自のユーザー定義型をオンにしたい場合、直接的に問題を解決するものではありませんが、組み込み型のみをオンにしたい他の人のために、タイプコード列挙:
switch (Type.GetTypeCode(node.GetType()))
{
case TypeCode.Decimal:
// Handle Decimal
break;
case TypeCode.Int32:
// Handle Int32
break;
...
}