2016-08-20 3 views
0

구조체 배열이 있습니다. 전역 변수를 GlobalVariables.cs에 어떻게 저장합니까? 시도 할 때 보호 수준으로 인해 액세스 할 수 없다는 오류가 발생합니다. 도와주세요! 직원 구조체C#에서 GlobalVariables.cs에 구조체 배열을 저장하는 중

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 class GlobalVariables 
    { 
     List<Employee[]> persons = new List<Employee[]>(); 
    } 

양식 코드 : 여기

는 GlobalVariables.cs 코드

public struct Employee 
    {  
     public string Name; 
     public int Id; 
     public string Authority; 
    } 
+0

Employee 구조체가 내부 클래스에서 중첩 형식으로 선언되어 있습니까? –

답변

0

나는 아니에요 당신의 코드에서 무엇을 하려는지,하지만 GlobalVariables를 정적 클래스 (public static class GlobalVariables)로 만든 다음에 acce 다른 클래스의 GlobalVariables.person을 좋아합니다. 괜찮습니다. 그래도 작동하지 않는다면, 코드로 무엇을하고 싶은지 조금 더 설명하십시오.

Employee person = new Employee(); 
GlobalVariables.persons.Add(person); 

편집 : : - 단지 주목 으악 다른 클래스 } (다른 클래스) 다음

에서 액세스 할 경우 정적 클래스의

public static class GlobalVariables 
{ 
    public static List<Employee[]> persons = new List<Employee[]>(); 

// 필드는 정적 및 공개합니다 전역 목록은 배열 목록이므로 사람 대신 사람 []을 추가하십시오. 왜 그렇게하고 싶은지 모르지만 위의 코드는 public static을 사용하여 전역 액세스에 대한 질문에 대답합니다. 보조 노트에

,

List<Employee> 

의 사용은 대부분의 목적을 위해

List<Employee[]> 

보다 훨씬 쉬울 것이다. 당신이 정말로 그룹에 직원을 필요로하는 경우

GlobalVariables.persons.Where(p=>p.Authority=="2"); 

같은 것을 사용하여 필요한 경우 당신은 항상 그룹 목록을 할 수 있습니다, 글로벌 사전 <>보다는 배열의 목록을 사용하는 것이 좋습니다 수 있습니다.

+0

정확히 내가 무엇을했는지. 고맙습니다. – user3905287

관련 문제