C# 无法创建静态类';金刚胺.肌体';

C# 无法创建静态类';金刚胺.肌体';,c#,C#,刚刚尝试创建ArrayList并用对象填充它,但出现以下错误: 无法创建静态类“diamondmine.MyObject”的实例 迄今为止的守则: public static class MySettings { //some lines public static ArrayList myObjects { get; set; } static MySettings() { //some lines myObjects = new ArrayList();

刚刚尝试创建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;
  }
}
这就是我试图添加新对象的方式:

//some code
MySettings.myObjecs.Add(new MyObject());
//more code

我不知道问题出在哪里,我正在做用MSDN编写的事情:(

正如错误所说,您不能创建静态类的实例

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;
  }
}
public static class MySettings
{
  //some lines
  public static ArrayList MyObjects { get; private set; }

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

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

  public MyObject()
  {
    a = 1;
    b = 2;
  }
}

正如错误所说,您不能创建静态类的实例

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;
  }
}
public static class MySettings
{
  //some lines
  public static ArrayList MyObjects { get; private set; }

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

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

  public MyObject()
  {
    a = 1;
    b = 2;
  }
}

将代码替换为comethig,如下所示:

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;
  }
}
public static class MySettings
{
  //some lines
  public static ArrayList MyObjects { get; private set; }

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

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

  public MyObject()
  {
    a = 1;
    b = 2;
  }
}

请注意,
MyObjects
private set

用comethig替换您的代码,如下所示:

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;
  }
}
public static class MySettings
{
  //some lines
  public static ArrayList MyObjects { get; private set; }

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

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

  public MyObject()
  {
    a = 1;
    b = 2;
  }
}


注意,
MyObjects
private set

您不能创建
static
类的实例,用
public-static-class-MyObject
替换
public-static-class-MyObject
这个错误消息非常清楚。您不能直接实例化静态类。相反,您可以通过类的名称,即,
MySettings.myObjects
@1000Gbps-您可能会与
静态构造函数
混淆。只有在您第一次尝试访问
MyObject
类的
static
成员时才会调用它。您的所有类和属性都是静态的吗?我的方法是检查如果确实需要,请删除这些修饰符。您不能创建
静态
类的实例,请将
公共静态类MyObject
替换为
公共类MyObject
,错误消息非常清楚。您不能直接实例化静态类。相反,您引用它的成员通过类的名称,即,
MySettings.myObjects
@1000Gbps-您可能会与
静态构造函数
混淆。只有在您第一次尝试访问
MyObject
类的
static
成员时才会调用它。您的所有类和属性都是静态的,有什么原因吗?我的方法是要检查这是否真的有必要,请删除这些修饰符。好的,但我仍然无法访问元素中对象的属性。
“object”不包含“a”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“a”(是否缺少using指令或程序集引用?
MySettings.myObjects[i].a
例如,如果检查数组中添加的对象的两个属性,则会出现此错误。由于myObject的类型是ArrayList,请尝试使用
列表
。那么,如何…在过去10分钟内成功完成此操作。为什么应该使用
列表
对象,您正在将实例化类型添加到集合中,然后尝试访问其属性。您只能访问具体类型的属性。好的,但我仍然无法访问元素中对象的属性。
“object”不包含“a”的定义,并且没有扩展方法“a”接受“objec”类型的第一个参数找不到t(是否缺少using指令或程序集引用?
MySettings.myObjects[i].a
例如,如果检查数组中添加的对象的两个属性,则会出现此错误。由于myObject的类型是ArrayList,请尝试使用
列表
。那么,如何…在过去10分钟内成功完成此操作。为什么应该使用
列表
对象,您将向集合添加实例化类型,然后尝试访问其属性。您只能访问具体类型的属性。