如何解决MarkMembersAsStatic FxCop错误?

时间:2017-06-30 03:47:11

标签: windows winforms code-analysis fxcop

我在类中有一个方法ResetMethod(ClassA a),我已经通过ResetMethod类的属性访问了这个方法,如下所示:

public class MyClass1
{
   public MyClass1()
   {
   }

   public void ResetMethod(ClassA a)
   {

   }
 }

 public class MyClass2
 {
    MyClass1 class1;

    public MyClass2()
    {
         ClassA a= new ClassA();
         MyClass1.ResetMethod(a);
    }

    public MyClass1 MyClass1 
    {
       get
       {
          if (myClass1 == null)
             myClass1 = new MyClass1 ();
          return myClass1 ;
       }
       set
       {
          myClass1 = value;
       }
    }
 }

在运行FxCop规则时,对于方法ResetMethod,它显示以下错误:

  

从不使用'MyClass1.ResetMethod(MyClassA)'的'this'参数(或Visual Basic中的'Me')。将成员标记为静态(或在Visual Basic中为Shared)或在方法体中使用“this”/“Me”,或者在适当的情况下使用至少一个属性访问者。

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

您调用MyClass1.ResetMethod(a);已经在调用静态方法。所以你发布的代码不符合我的理解。

所以剩下的就是让方法本身是静态的:

   public static void ResetMethod(ClassA a)
   {
       // ...
   }