2016-08-20 58 views
0

我有一个结构数组。我如何将它们全局存储在GlobalVariables.cs中?当我尝试时,它会给出一个错误,说明它由于其保护级别而无法访问。请帮忙!在C中的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

Employee结构在内部类中声明为嵌套类型吗? –

回答

0

我不是从你的代码中确定你正在尝试做什么,但是如果你让GlobalVariables成为一个静态类(public static class 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"); 

的东西,如果你真的需要将你的员工需要的,它可能是更好地使用全球字典<>而不是阵列的列表。

+0

到底是什么。非常感谢你。 – user3905287

相关问题