不能创建静态类'diamondmine.MyObject'的实例
本文关键字:实例 MyObject diamondmine 不能 创建 静态类 | 更新日期: 2023-09-27 17:50:55
刚刚尝试创建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;
}
}
那么用法是:
MySettings.myObjects.Add(new MyObject());
MySettings.myObjects[0].a; // returns 1
用这样的东西替换你的代码:
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