[英]How to access different types of classes in a single object array in C#
我有一個對象數組,應該保存不同類的對象。 我需要寫下這些類的屬性,但不知道如何訪問它們。
例如:
object[] NationalTeam;
可能持有:
class Swimmer
class Runner
等等
具有不同的屬性。 無法使用NationalTeam[i]
訪問它們。 可以使用重載[]索引器嗎? 如果是,怎么辦?
您將必須:
投放他們:
object teamMember = NationalTeam[0]; if (teamMember is Swimmer) { Swimmer swimmerTeamMember = (Swimmer)teamMember; // Work with swimmer } // ... and so on
添加並實現接口或基類,例如ITeamMember
或TeamMember
。
interface ITeamMember { /* common properties */ } class Swimmer : ITeamMember { /* ... */ } ITeamMember[] NationalTeam;
或同時使用兩者。
埃里克·利珀特(C#的設計師之一)有一個很棒的演練來解釋一個非常相似的問題。 我建議您閱讀。 http://ericlippert.com/2015/04/27/wizards-and-warriors-part-one/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.