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

作者: unstoppable (BEN)   2020-04-14 22:35:39
很抱歉標題可能沒辦法表達我想說的
想請問以下例子是否有可能達成
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
感謝
作者: w1245h (hank)   2020-04-15 08:21:00
是想把類別放進陣列裡面嗎?可以先宣告一個類別陣列 在宣告一個新的物件 把那個物件放進陣列裡就可以了,如果不是就不用加[]直接用s.name =John 就可以了
作者: s4300026 (s4300026)   2020-04-15 08:31:00
你怎麼知道0對應到name, 2對應到age
作者: unstoppable (BEN)   2020-04-15 08:52:00
我是想讓s[0]有著跟s.name相同效果,想詢問看看是否有我不知道的方式可以達成
作者: O2000 (吵死了 閉嘴啦)   2020-04-15 09:18:00
public object this[int index]{get;set;}
作者: kyrc (橘子)   2020-04-15 16:13:00
作者: s4300026 (s4300026)   2020-04-16 07:23:00
可是一個是數字(int),一個是文字(string),為什麼你想把他們塞一起? 我的意思是,你舉例的網站,他是用[ ]符號,那你能說說[ ]代表什麼意思嗎?說錯,是kyrc大大的舉例O2000是正確答案,但我覺得你要有理由這樣寫
作者: ssccg (23)   2020-04-16 09:29:00
有typed property不用,為什麼會想用沒type的indexer...
作者: unstoppable (BEN)   2020-04-16 14:26:00
因為目前有個資料進來是int index分類,像是[0=“John”],我這邊知道0代表是對應到name,所以想要在後續處理比較直視的作法s.name=xxx
作者: kyrc (橘子)   2020-04-16 14:45:00
https://dotblogs.com.tw/LazyCodeStyle/2016/05/29/161746那用索引子的方法呢?就是 O2000 提到的方式
作者: Litfal (Litfal)   2020-04-16 14:54:00
至少把index寫成enum吧而且這樣你的set/get不都只能用object
作者: kobe8112 (小B)   2020-04-16 17:33:00
要不要先改成說說看為什麼想這樣做的原因?
作者: okok24 (匿名人士)   2020-04-16 19:52:00
https://i.imgur.com/Zrhs2CN.jpg反射法可以 但不要在注重效能的系統這麼做
作者: unstoppable (BEN)   2020-04-16 22:32:00
感謝所有回覆,有點頭緒了!

Links booklink

Contact Us: admin [ a t ] ucptt.com