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;
         }
     }
 }