无法创建静态类'diamondmine.MyObject'的实例

100*_*bps 0 c#

刚尝试创建ArrayList并用对象填充它,但是遇到了这个错误:

无法创建静态类'diamondmine.MyObject'的实例

到目前为止的代码:

public static class MySettings
{
  //some lines
  public static ArrayList myObjects { get; set; }

  static MySettings()
  {
    //some lines
    myObjects = new ArrayList();
  }
}

public static class MyObject
{
  public static int a { get; set; }
  public static int b { get; set; }

  static MyObject()
  {
    a = 1;
    b = 2;
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是我尝试添加新对象的方式:

//some code
MySettings.myObjecs.Add(new MyObject());
//more code
Run Code Online (Sandbox Code Playgroud)

Rly没有线索问题在哪里,我正在做MSDN中写的东西:(

Ste*_*eve 5

如错误所示,您无法创建静态类的实例.

您的MyObject类不应该是静态的,这将允许您创建它的实例.

有关静态和非静态的更多信息,请参见此处:静态与非静态类成员

要回答评论中的问题,您的代码最终将会是这样的:

public static class MySettings
{
  //some lines
  public List<MyObject> myObjects { get; set; }

  static MySettings()
  {
    //some lines
    myObjects = new List<MyObject>();
  }
}

public class MyObject
{
  public int a { get; set; }
  public int b { get; set; }

  public MyObject()
  {
    a = 1;
    b = 2;
  }
}
Run Code Online (Sandbox Code Playgroud)

那么用法是:

MySettings.myObjects.Add(new MyObject());
MySettings.myObjects[0].a; // returns 1
Run Code Online (Sandbox Code Playgroud)