作者unstoppable (BEN)
看板C_Sharp
标题[问题] 类别内是否能配合索引?
时间Tue Apr 14 22:35:39 2020
很抱歉标题可能没办法表达我想说的
想请问以下例子是否有可能达成
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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1586874941.A.E98.html
※ 编辑: unstoppable (36.231.103.102 台湾), 04/14/2020 23:23:44
1F:→ w1245h: 是想把类别放进阵列里面吗?可以先宣告一个类别阵列 在宣 04/15 08:21
2F:→ w1245h: 告一个新的物件 把那个物件放进阵列里就可以了,如果不是 04/15 08:21
3F:→ w1245h: 就不用加[]直接用s.name =John 就可以了 04/15 08:21
4F:推 s4300026: 你怎麽知道0对应到name, 2对应到age 04/15 08:31
5F:→ unstoppable: 我是想让s[0]有着跟s.name相同效果,想询问看看是否 04/15 08:52
6F:→ unstoppable: 有我不知道的方式可以达成 04/15 08:52
7F:→ O2000: public object this[int index]{get;set;} 04/15 09:18
9F:→ s4300026: 可是一个是数字(int),一个是文字(string),为什麽你 04/16 07:23
10F:→ s4300026: 想把他们塞一起? 我的意思是,你举例的网站,他是用[ ] 04/16 07:23
11F:→ s4300026: 符号,那你能说说[ ]代表什麽意思吗? 04/16 07:23
12F:→ s4300026: 说错,是kyrc大大的举例 04/16 07:23
13F:→ s4300026: O2000是正确答案,但我觉得你要有理由这样写 04/16 07:26
14F:→ ssccg: 有typed property不用,为什麽会想用没type的indexer... 04/16 09:29
15F:→ unstoppable: 因为目前有个资料进来是int index分类,像是[0=“Jo 04/16 14:26
16F:→ unstoppable: hn”],我这边知道0代表是对应到name,所以想要在 04/16 14:26
17F:→ unstoppable: 後续处理比较直视的作法s.name=xxx 04/16 14:26
19F:→ kyrc: 那用索引子的方法呢?就是 O2000 提到的方式 04/16 14:46
20F:推 Litfal: 至少把index写成enum吧 04/16 14:54
21F:→ Litfal: 而且这样你的set/get不都只能用object 04/16 14:58
22F:→ kobe8112: 要不要先改成说说看为什麽想这样做的原因? 04/16 17:33
24F:→ okok24: 反射法可以 但不要在注重效能的系统这麽做 04/16 19:53
25F:→ unstoppable: 感谢所有回覆,有点头绪了! 04/16 22:32