1. 程式人生 > >C#泛型類訪問子類成員

C#泛型類訪問子類成員

要處理的問題是父類物件不能訪問子類物件的欄位。 進入正題: 有兩個類,一個父類一個子類。解決的問題是要在例項化之後可以訪問子類成員。 父類:
public class Student
{
    public string school;
}
子類:
public class College:Student
{
    public int age;
    public College(string school, int age)
    {
        this.school = school;
        this.age = age;
    }
}

例項化:
        List<Student> studends = new List<Student>();
        studends.Add(new College("aaa",20));   
        studends.Add(new College("bbb", 19));
        string school = studends[0].school;   
        //int age = studends[0].age;  報錯,不好訪問子類欄位

        List<College> collegestudent = studends.Cast<College>().ToList(); 
        int age = collegestudent[0].age;  //訪問

定義的students是父類物件,而訪問的age欄位是子類欄位。父類物件不能直接訪問子類欄位,所以要進行轉換。 這裡利用Cast()方法將父類集合轉換成子類集合。 當然也可以用迴圈語句取出所有的父類物件,一個一個轉。