[問題] 類別內是否能配合索引?

看板C_Sharp (C#)作者 (BEN)時間4年前 (2020/04/14 22:35), 4年前編輯推噓3(3022)
留言25則, 9人參與, 4年前最新討論串1/1
很抱歉標題可能沒辦法表達我想說的 想請問以下例子是否有可能達成 class sample { public string name{get;set;} public string number{get;set;} public int age {get;set;} } sample s = new sample(); s[0]="JOHN";//name s[2]=30;//age Console.Write(s.name); //John 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.103.102 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1586874941.A.E98.html ※ 編輯: unstoppable (36.231.103.102 臺灣), 04/14/2020 23:23:44

04/15 08:21, 4年前 , 1F
是想把類別放進陣列裡面嗎?可以先宣告一個類別陣列 在宣
04/15 08:21, 1F

04/15 08:21, 4年前 , 2F
告一個新的物件 把那個物件放進陣列裡就可以了,如果不是
04/15 08:21, 2F

04/15 08:21, 4年前 , 3F
就不用加[]直接用s.name =John 就可以了
04/15 08:21, 3F

04/15 08:31, 4年前 , 4F
你怎麼知道0對應到name, 2對應到age
04/15 08:31, 4F

04/15 08:52, 4年前 , 5F
我是想讓s[0]有著跟s.name相同效果,想詢問看看是否
04/15 08:52, 5F

04/15 08:52, 4年前 , 6F
有我不知道的方式可以達成
04/15 08:52, 6F

04/15 09:18, 4年前 , 7F
public object this[int index]{get;set;}
04/15 09:18, 7F

04/15 16:13, 4年前 , 8F

04/16 07:23, 4年前 , 9F
可是一個是數字(int),一個是文字(string),為什麼你
04/16 07:23, 9F

04/16 07:23, 4年前 , 10F
想把他們塞一起? 我的意思是,你舉例的網站,他是用[ ]
04/16 07:23, 10F

04/16 07:23, 4年前 , 11F
符號,那你能說說[ ]代表什麼意思嗎?
04/16 07:23, 11F

04/16 07:23, 4年前 , 12F
說錯,是kyrc大大的舉例
04/16 07:23, 12F

04/16 07:26, 4年前 , 13F
O2000是正確答案,但我覺得你要有理由這樣寫
04/16 07:26, 13F

04/16 09:29, 4年前 , 14F
有typed property不用,為什麼會想用沒type的indexer...
04/16 09:29, 14F

04/16 14:26, 4年前 , 15F
因為目前有個資料進來是int index分類,像是[0=“Jo
04/16 14:26, 15F

04/16 14:26, 4年前 , 16F
hn”],我這邊知道0代表是對應到name,所以想要在
04/16 14:26, 16F

04/16 14:26, 4年前 , 17F
後續處理比較直視的作法s.name=xxx
04/16 14:26, 17F

04/16 14:45, 4年前 , 18F

04/16 14:46, 4年前 , 19F
那用索引子的方法呢?就是 O2000 提到的方式
04/16 14:46, 19F

04/16 14:54, 4年前 , 20F
至少把index寫成enum吧
04/16 14:54, 20F

04/16 14:58, 4年前 , 21F
而且這樣你的set/get不都只能用object
04/16 14:58, 21F

04/16 17:33, 4年前 , 22F
要不要先改成說說看為什麼想這樣做的原因?
04/16 17:33, 22F

04/16 19:52, 4年前 , 23F

04/16 19:53, 4年前 , 24F
反射法可以 但不要在注重效能的系統這麼做
04/16 19:53, 24F

04/16 22:32, 4年前 , 25F
感謝所有回覆,有點頭緒了!
04/16 22:32, 25F
文章代碼(AID): #1UbSezwO (C_Sharp)
文章代碼(AID): #1UbSezwO (C_Sharp)