CS.STMT.IFELSE.BLOCK

if/else ステートメントのボディはブロックでなければなりません。

if/else ステートメントのボディは、{ と } の間のブロックである必要があります。

脆弱性とリスク

if/else ステートメントのボディで波括弧を省略すると、不注意なプログラミングエラーが発生する可能性があります。

軽減と防止

if/else ステートメントのボディでは、波括弧を使用します。

脆弱コード例

コピー
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  
  namespace kmcustom
  {
      class C18
     {
         public void doSomething()
         {
 
         }
 
         public void testNGIf(int some_number)
         {
 
             if (some_number == 1)
                 doSomething();
             else if (some_number == 2)
                 doSomething();
             else
                 doSomething();
 
 
             if (some_number == 3) ;
             else if (some_number == 4) ;
             else;
 
         }
 
         public void testOKIf(int some_number)
         {
 
             if (some_number == 1)
             {
                 doSomething();
             }
             else if (some_number == 2)
             {
                 doSomething();
             }
             else {
                 doSomething();
             }
         }
     }
 }