CS.METHOD.UNUSED_PRIVATE

未使用の private メソッドを避けます。

この規則は、'private' メソッドまたはプロパティがクラスまたは内部クラスのどこにも使用されていない場合に常にトリガーします。

脆弱性とリスク

クラスのどこにも使用されていない private メソッドまたはプロパティは、基本的に実行されないコードです。よくても、これはクリーンアップ後に除外されるコードでした。最悪の場合には、private メソッドがどこからか呼び出されるはずであった箇所により重要なバグがあることを示している可能性があります。

脆弱コード例

コピー
  using System;
  namespace AvoidUnusedPrivateMethods
  {
      public class Example
      {
          int _myField;
          public Example()
          {
          }
         private int MyInt
         {
             get { return _myField; }
             set { _myField = value; } // VIOLATION
         }
         private Example(int init) // VIOLATION
         {
         }
         private void myTestMethod(int myArg)
         {
         }
         private void mySecondTestMethod(int myArg) // VIOLATION
         {
             myTestMethod(Int32.MaxValue);
         }
         private class MySubType
         {
             Example ex = new Example();
             private void checkValue() // VIOLATION
             {
                 int a = ex.MyInt;
             }
         }
     }
 }

修正コード例

コピー
  // Fixed by removing unused code or calling the methods.
  
  using System;
  namespace AvoidUnusedPrivateMethods
  {
      public class Example
      {
          int _myField;
         public Example()
         {
             _myField = 55;
         }
         private int MyInt
         {
             get { return _myField; }
         }
         private class MySubType
         {
             Example ex = new Example();
             public int Foo()
             {
             return ex.MyInt;
             }
         }
     }
 }