0

IList Listプロパティを使用して、大学のクラスの学生クラスのリストを取得しています..大学のクラスの一部である学部のクラスでこのリストにアクセスしようとしています..リストが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());
            }
        }
    }
  }
}

main()の部分は

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();



    }
  }
}
4

2 に答える 2

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());
        }
    }

これをもう少しよく読んでください。

于 2012-06-05T20:24:50.793 に答える
1

University の初期化コードは、パラメータとして指定したリストを保存しません。

リストを学部または大学オブジェクト自体の変数に保存してみてください。これらのオブジェクトのいずれかの詳細を表示しているときに、オブジェクトの作成時に保存したリストを参照できます。

それが役立つことを願っています!

于 2012-06-05T20:07:25.233 に答える