我有一系列结构。如何在GlobalVariables.cs中全局存储它们?当我尝试时,它会给出一个错误,说它由于其保护级别而无法访问。请帮助!
这是GlobalVariables.cs代码:
public class GlobalVariables
{
List<Employee[]> persons = new List<Employee[]>();
}
以下是表单代码:
List<Employee> persons = new List<Employee>()
{
new Employee { Name = "alfred", Id = 203476, Authority = "1" },
new Employee { Name = "barbara", Id = 182856, Authority = "4" },
new Employee { Name = "chris", Id = 398046, Authority = "2" },
};
这是员工结构:
public struct Employee
{
public string Name;
public int Id;
public string Authority;
}
答案 0 :(得分:0)
我从您的代码中不确定您要尝试做什么,但如果您将GlobalVariables设置为静态类(公共静态类GlobalVariables),然后从其他类中访问GlobalVariables.persons,事情应该没问题。如果这不起作用,请尝试解释您想要对代码执行的操作。
public static class GlobalVariables
{
public static List<Employee[]> persons = new List<Employee[]>();
//如果从其他类访问,静态类的字段需要是静态的和公共的 }
然后(来自另一个班级):
Employee person = new Employee();
GlobalVariables.persons.Add(person);
编辑:哎呀 - 刚注意到你的全局列表是一个数组列表,所以你要添加person []而不是person。不确定为什么要这样做,但上面的代码通过使用公共静态来回答你的全局访问问题。
在旁注,使用
List<Employee>
比
容易得多List<Employee[]>
用于大多数目的。如果需要,您可以使用
之类的内容对列表进行分组GlobalVariables.persons.Where(p=>p.Authority=="2");
如果您真的需要对员工进行分组,那么最好使用全球词典&lt;&gt;而不是数组列表。