C# 非静态字段,即使将函数声明为静态也会出错

C# 非静态字段,即使将函数声明为静态也会出错,c#,winforms,C#,Winforms,我很高兴能得到一份工作 非静态字段、方法或属性需要对象引用 错误,即使我将其声明为静态。 我似乎想不出一个解决办法。我在这上面花了足够的时间,需要帮助,否则这就是我的厄运 我还和布景打成平局: TestFeature test = new TestFeature(); 和使用 static public void DispData() { test.richTextBox1.Text = "1"; } 我的目标是将从com端口传入的所有数据转储到richtextbox1中 dump[i]

我很高兴能得到一份工作 非静态字段、方法或属性需要对象引用 错误,即使我将其声明为静态。 我似乎想不出一个解决办法。我在这上面花了足够的时间,需要帮助,否则这就是我的厄运

我还和布景打成平局:

TestFeature test = new TestFeature();
和使用

static public void DispData()
{
  test.richTextBox1.Text = "1";
}
我的目标是将从com端口传入的所有数据转储到richtextbox1中

dump[i] = string.Format("{0:X2}", hex.ToString());
DispData(ref string[] dump);
以下是完整的代码:

namespace SW_Public
{
  public partial class TestFeature : Form
  {
    public TestFeature()
    {
      InitializeComponent();
      this.Text = FRM_Title.PadLeft(5);
      richTextBox1.Text = "RTB1";
      richTextBox2.Text = "RTB2";
    }

    .....

    static public void DispData(ref string[] dump)
    {
      richTextBox1.Text = dump;
    }

    static void DisplayData(Byte Cmd, Byte[] RxData, int len)
    {

      switch (Cmd)
      {
        case (int)RXCMD.CMD_GETVERSION:
        .....

        case (int)RXCMD.CMD_RMEM:
        {
          string[] dump = new string[512]; 
          for (int i = 0; i < len; i++)
          {
            byte hex = RxData[i];
            dump[i] = string.Format("{0:X2}", hex.ToString());
            DispData(ref string[] dump);           
          }
          break;
        }
      }

    }
  }
}
namespace SW\u Public
{
公共部分类TestFeature:表单
{
公共TestFeature()
{
初始化组件();
this.Text=FRM_Title.PadLeft(5);
richTextBox1.Text=“RTB1”;
richTextBox2.Text=“RTB2”;
}
.....
静态公共void DispData(参考字符串[]转储)
{
richTextBox1.Text=dump;
}
静态无效显示数据(字节Cmd,字节[]RxData,int len)
{
开关(Cmd)
{
案例(int)RXCMD.CMD\u GETVERSION:
.....
案例(int)RXCMD.CMD\u RMEM:
{
字符串[]转储=新字符串[512];
对于(int i=0;i
从类中的所有方法中删除所有静态修饰符


您不能直接从静态方法中访问实例变量或方法。

您了解
静态
实例
之间的区别吗?另外,您能否将代码示例减少到引起问题的部分?很抱歉,这么多代码通常不是人们将宝贵时间花在上面的。请阅读以下内容:,然后是您的问题,并向我们提供最短的代码来说明您的问题。richTextBox1显然不在静态调用范围内。抱歉,没有人会阅读所有这些代码。但是,您的问题是您可能试图从静态方法引用实例变量(richTextBox1)。静态方法作为一个整体与类相关,而不是与任何特定实例相关。因此,它没有此引用(即,对正在操作的实例的引用)。实例变量实际上是
this.VariableName
,因此,如果没有
this
,您可以访问
VariableName
(我说的是“变量”,但我指的是字段、属性和方法中的任何一个)。在静态方法中,只能访问静态内容。。