0

我用 codacy 审查我的代码,而 codacy 跟我说

Remove the 'button1' field and declare it as a local variable in the relevant methods.

codacy 表示的行是 private Button button1;

本例中的方法 button1_Click

我的代码是(只是一个小例子,因为我的代码要大得多):

namespace WindowsFormsApp1
{
    public class Form1 : Form
    {
        private Button button1;

        public Form1()
        {
            InitializeComponent();
        }
        #region Vom Windows Form-Designer generierter Code
        private void InitializeComponent()
        {
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(349, 155);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 0;
            this.button1.Text = "button1";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(800, 450);
            this.Controls.Add(this.button1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.ResumeLayout(false);

        }
        #endregion
        private void button1_Click(object sender, EventArgs e)
        {

        }
    }
}

我不知道该怎么做,谁能解释我在这里做什么?问候

4

2 回答 2

1

在表单编辑选项卡中选择此按钮并将其设置GenerateMemberfalse。但请注意,您将无法在后面的代码中使用此按钮。

在此处输入图像描述

于 2019-01-22T23:11:44.907 回答
0

移除 'button1' 字段并在相关方法中将其声明为局部变量。

不。

您显示的代码由 Windows 窗体设计器生成。如果修改它,可能会发生以下两种情况之一:

  1. 更糟糕的情况 - 你打破了表格。
  2. 最佳情况 - 设计器在下次调用时覆盖您的更改。

两者都不是理想的,两者都是多余的。看起来你拥有的是一个静态分析工具,它对于分析你编写的代码很有用,但对于你不编写的代码并由工具生成基本上没有意义。(例如,您也不需要分析来自 3rd 方库的代码。)

老实说,只需将您的静态分析工具设置为忽略生成的代码。(同样的建议也适用于单元测试覆盖率指标。尤其是当涉及到由 Visual Studio 中的 SOAP 服务客户端生成的数千行时。如果考虑到它,一个遗留的 Web 服务集成可能会扼杀您的分析指标,而且没有真正的这样做的价值。)

于 2019-01-22T23:15:43.513 回答