无法从表单代码实例化 class 的 public 实例

Can't instantiate public instance of class from form code

我正在用 c# 开发一个 windows 表单应用程序,但我不明白为什么我不能从我的表单代码中实例化一个 class 对象。我有几个 classes,从所有这些中我可以公开实例化其他 classes 的实例,或者只在方法中实例化,没有问题。 但是,当我尝试从我的主窗体中实例化其中一个 class 时,它不起作用。

它甚至没有意识到我刚刚创建了 class 的一个实例。 真正的关键是我可以从我的 frmMain class:

中的方法内部成功实例化一个 class
 private void Form_Load()
    {
    long deltaTime; int i; int page;

      if (releaseMode)
      {
          modCanCable can = new modCanCable();
          can.WaitWhileBusy();
      }

所有 classes 和表单 classes 也都在同一个命名空间下。如果您需要我提供更多信息以帮助我找到答案,请告诉我!

必须在方法或构造函数中完成。你不能把它放在 class.

public partial class frmMain : Form
{
    modCanCable cab = new modCanCable();
    public frmMain()
    { 
         cab.property = "asd";   
    }
}

在 C# 中,所有代码都必须在方法内。 modCanCable can = new modCanCable(); 行声明了一个私有字段并使用 field initializer 将其初始化为新的 modCanCable 实例。对 can 字段的任何其他引用都必须在方法主体内。

只能在class级别声明全局变量。必须在 属性、方法或函数中使用该全局变量。

对于全局枚举器,像声明任何其他变量一样声明它

private EnumeratorClass VariableName;

示例(遵循命名约定)

private MyEnum _myVariableName;