CS.SWITCH.NODEFAULT
'switch' ステートメントごとに 'default:' を提示します。
この規則は、"default" ステートメントがない "switch" ステートメントを識別します。エラーは発生ごとに報告されます。この規則は C# 言語にのみ適用されます。
軽減と防止
多くの場合、switch 内の "case" ステートメントは唯一の論理オプションであるため、入力の許容範囲外であるオプションをキャッチするために、"default" ステートメントを追加しなければなりません。これは、一部の追加の値が列挙型で定義されており、列挙型のより以前の値に対してのみ switch に case ステートメントがある状況を丁寧に処理することもできます。
脆弱コード例
コピー
public class PDS
{
void method (int i)
{
switch (i) // VIOLATION: missing default label
{
case 0:
System.Console.WriteLine ("Zero");
break;
}
}
}
修正コード例
コピー
// Add a "default" statement.
public class PDSFixed
{
void method (int i)
{
switch (i)
{
case 0:
System.Console.WriteLine ("Zero");
break;
default: // FIXED
break;
}
}
}