2016-08-20 56 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

相關問題