2012-06-05 2 views
0

나는 대학 수업에서 학생들의 수업 목록을 얻으려고 IList List 속성을 사용하고 있습니다. 나는 대학 수업의 한 부분 인이 수업 목록에서이 목록에 액세스하려고합니다. 목록은 Null입니다. 아무도 이유를 말할 수 있습니까? ?IList List는 Composition Class에서 null입니다. 왜?

namespace UniversitySystem 
{ 
    class University : CollectionBase 
    { 
    private string _uniName; 
    Departments _depart = new Departments(); 


    public University(string un, string dn, string cp, List<Student> Slist) 
    { 
     this._uniName = un; 
     this.CED.DepartName = dn; 
     this.CED.ChairPerson = cp; 
     foreach (Student s in Slist) 
     { 
      List.Add(s); 
     } 
    } 

    #region properties 

    public string UniName 
    { 
     get { return _uniName; } 
     set { _uniName = value; } 
    } 

    public Departments CED 
    { 
     get { return _depart; } 
     set { _depart = value; } 
    } 

    #endregion 


    public class Departments : CollectionBase 
    { 
     private string _departName; 

     public string DepartName 
     { 
      get { return _departName; } 
      set { _departName = value; } 
     } 
     private string _chairPerson; 

     public string ChairPerson 
     { 
      get { return _chairPerson; } 
      set { _chairPerson = value; } 
     } 
     public List<Student> StudentListForCED = new List<Student>(); 


     public Departments() 
     { 
      _departName = null; 
      _chairPerson = null; 
      StudentListForCED = null; 
     } 

     public Departments(string dn, string cp, List<Student> Slist) 
     { 
      this._departName = dn; 
      this._chairPerson = cp; 
      foreach (Student s in Slist) 
      { 
       List.Add(s); 
      } 
     } 

     public void showDetails() 
     { 
      Console.WriteLine("Departmental Info"); 
      Console.WriteLine("DepartmentName: " + _departName); 
      Console.WriteLine("Chairperson Name: " + _chairPerson); 
      Console.WriteLine("Student Info:"); 
      foreach (Student item in List) 
      { 
       Console.WriteLine("Name: " + item.Name); 
       Console.WriteLine("deptName: " + item.RegNo); 
       Console.WriteLine("total marks: " + item.TotalMarksObtained); 
       Console.WriteLine("percentage: " + item.GetPercentage()); 
      } 
     } 
    } 
    } 
} 

주() 부분은

namespace UniversitySystem 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 

     List<Student> slist = new List<Student>(); 
     slist.Add(new Student("sana", 1234, "CIS", 650)); 
     slist.Add(new Student("anam", 2345, "BCIT", 400)); 
     slist.Add(new Student("fizzza", 2670, "Electrical", 670)); 


     University u1 = new University("NED", "computer", "UKP", slist); 
     Console.WriteLine(u1.CED.DepartName); 
     u1.CED.showDetails(); 



    } 
    } 
} 
+0

/List는 어떻게 선언되고 초기화됩니까? – Attila

+0

그 Collection Base 클래스에서 .. 이미 IList List로 선언 된 프로퍼티. 그냥 그 프로퍼티를 사용합니다. –

+0

변수 List의 이름을 지정할 수 없습니다. – TheGeekYouNeed

답변

1

당신은 매개 변수로 제공 목록을 저장하지 않는 대학에 대한 초기화 코드이다.

변수를 부서 또는 대학 객체 자체에 저장하고 해당 객체 중 하나에 대한 세부 정보를 표시하면 해당 객체를 만들 때 저장 한 목록을 참조 할 수 있습니다.

희망 하시겠습니까?

+0

코드를 객체 지향 방식으로 작성했기 때문에 객체가 자신과 관련된 상태와 값을 처리하도록해야합니다. – Logard

+0

LOgard : 나는 그것을 시도했다. 그러나 ** "객체 참조가 객체의 인스턴스로 설정되지 않았다."라고 말합니다. ** ann 번호의 목록을 전달하면 오류가 발생합니다. University Constructor에게 객체를 가져옴 –

1

몇 가지 변경해야 할 사항이 있습니다.

public Departments(string dn, string cp, List<Student> Slist) 
    { 
     this._departName = dn; 
     this._chairPerson = cp; 
     foreach (Student s in Slist) 
     { 
      StudentListForCED.Add(s); 
     } 
    } 

    public void showDetails() 
    { 
     Console.WriteLine("Departmental Info"); 
     Console.WriteLine("DepartmentName: " + _departName); 
     Console.WriteLine("Chairperson Name: " + _chairPerson); 
     Console.WriteLine("Student Info:"); 
     foreach (Student item in StudentListForCED) 
     { 
      Console.WriteLine("Name: " + item.Name); 
      Console.WriteLine("deptName: " + item.RegNo); 
      Console.WriteLine("total marks: " + item.TotalMarksObtained); 
      Console.WriteLine("percentage: " + item.GetPercentage()); 
     } 
    } 

철저하게 조금 더 this을 읽어 보시기 바랍니다.

+0

Worked out .. thanks =)) –