CS.MAGIC.CHAR

使用されるマジックナンバー: 文字。

マジックナンバーが使用されています。このチェッカーは、変数の宣言、メソッドの引数、および二項演算でのマジックナンバーの使用を確認します。

脆弱性とリスク

マジックナンバーの使用により、保守性が損なわれます。

軽減と防止

const または readonly 修飾子を使用して、定数変数を宣言します。

コピー
  using System;
  
  namespace kmcustom
  {
      public class C11
      {
  
          double d314 = 3.14; //NG
          int i0 = 0;//OK
         int i1 = 1;//OK
         int i2 = 2;//NG
         decimal dec2 = 2;//NG
         float float2 = 2.0F;//NG
         uint uint2 = 2;//NG
         short short2 = 2;//NG
         ushort ushort2 = 2;//NG
         long long2 = 2;//NG
         ulong ulong2 = 2;//NG
         const int const_i2 = 2;//OK
         static readonly int static_readonly_i2 = 2;//OK
         int assign_const_i2 = const_i2;//OK
         int assign_const_i2_and_magicnum = const_i2 + 3;//NG
         char c1 = '1';//NG
         const char const_c1 = '1';//OK
         String s1 = "string1";//NG
         const String sf1 = "string1";//OK
 
         const double fDB314 = 3.14;//OK
         double var_init_with_const = fDB314;
 
         public void somefunc_number(double a, int b)
         {
 
         }
 
         public void somefunc_char(char str)
         {
 
         }
         public void somefunc_string(String str)
         {
 
         }
 
         public void test_number(int v, String strVar)
         {
             double local_var = 3.14;//NG
             if (v < 3)//NG
             {
                 somefunc_number(v, 2);//NG
                 somefunc_number(3.1, v);//NG
                 somefunc_number(v, v);//OK
             }
             if (0 != v)//NG
             {
             }
         }
 
         public void test_char(char v)
         {
             char local_var = 'a';//NG
             const char const_local_var = 'a';//OK
             if (v != '3')
             {//NG
                 somefunc_char('a');//NG
                 somefunc_char(v);//OK
             }
             if ('0' != v)//NG
             {
             }
 
         }
 
         public void test_string(String v)
         {
             String local_var = "a";//NG
             const String const_local_var = "fix";//OK
             if (v.Length != "3".Length) //NG
             {
                 somefunc_string("a");//NG
                 somefunc_string(v);//OK
             }
             if ("0".Length != v.Length)//NG
             {
             }
 
         }
 
     }
 }