簡體   English   中英

如何在C#中的單個對象數組中訪問不同類型的類

[英]How to access different types of classes in a single object array in C#

我有一個對象數組,應該保存不同類的對象。 我需要寫下這些類的屬性,但不知道如何訪問它們。

例如:

object[] NationalTeam;

可能持有:

class Swimmer
class Runner

等等

具有不同的屬性。 無法使用NationalTeam[i]訪問它們。 可以使用重載[]索引器嗎? 如果是,怎么辦?

您將必須:

  1. 投放他們:

     object teamMember = NationalTeam[0]; if (teamMember is Swimmer) { Swimmer swimmerTeamMember = (Swimmer)teamMember; // Work with swimmer } // ... and so on 
  2. 添加並實現接口或基類,例如ITeamMemberTeamMember

     interface ITeamMember { /* common properties */ } class Swimmer : ITeamMember { /* ... */ } ITeamMember[] NationalTeam; 
  3. 或同時使用兩者。

埃里克·利珀特(C#的設計師之一)有一個很棒的演練來解釋一個非常相似的問題。 我建議您閱讀。 http://ericlippert.com/2015/04/27/wizards-and-warriors-part-one/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM