C# 无法创建静态类';金刚胺.肌体';
刚刚尝试创建ArrayList并用对象填充它,但出现以下错误: 无法创建静态类“diamondmine.MyObject”的实例 迄今为止的守则: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();
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分钟内成功完成此操作。为什么应该使用列表
对象,您将向集合添加实例化类型,然后尝试访问其属性。您只能访问具体类型的属性。