C#泛型類訪問子類成員
阿新 • • 發佈:2018-12-31
要處理的問題是父類物件不能訪問子類物件的欄位。
進入正題:
有兩個類,一個父類一個子類。解決的問題是要在例項化之後可以訪問子類成員。
父類:
例項化:
定義的students是父類物件,而訪問的age欄位是子類欄位。父類物件不能直接訪問子類欄位,所以要進行轉換。 這裡利用Cast()方法將父類集合轉換成子類集合。 當然也可以用迴圈語句取出所有的父類物件,一個一個轉。
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()方法將父類集合轉換成子類集合。 當然也可以用迴圈語句取出所有的父類物件,一個一個轉。