作者wind681201 (阿风~~)
看板C_Sharp
标题[问题] 提取的方式
时间Sat Apr 28 16:59:31 2018
问题是这样的,常常会遇到这样的问题
public class C(){
private string Name;
}
简单的例子,如上,常常会在开发上,需要用到之前的类别里面,的一些资讯
像上面的例子,我需要 Name这个变数,但又不想修改 Class C,请问这样的需求,
大家都会怎麽做?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.78.48
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1524905975.A.0BF.html
1F:→ vi000246: 再加一个public string GetName(){return this.Name}; 04/28 17:19
2F:→ vi000246: 如果不能修改class的话应该是无解 04/28 17:19
3F:推 Litfal: 不能改class的话,还可以用反射 04/28 17:54
4F:→ wind681201: 请问反射怎麽使用?可以抓到private? 04/28 21:57
5F:推 geminily: 既然先前设计的类别成员会被使用到,为什麽不像一楼一 04/28 23:13
6F:→ geminily: 样设计一个公开的方法提取@@? 04/28 23:13
7F:→ wind681201: 目前是使用一楼方式,只是想问有什麽更好的辨法 04/29 09:14
8F:推 s4300026: 如果name会某些因素更新,用prop的方式可以呼叫到最新 04/29 13:46
9F:→ s4300026: 的name 04/29 13:46
10F:推 s4300026: 你应该要问的是: 为什麽name不被开放出来给外部的人使 04/29 13:48
11F:→ s4300026: 用? 04/29 13:48
12F:→ Litfal: 可以改当然是改类别简单又快速,不能改才考虑用反射去hack 04/29 15:53
13F:→ Litfal: 另外你知道prop可以设存取子吧? 04/29 15:58
14F:→ wind681201: 知道,只是想找不用改之前人家写的方式,来处理 04/29 21:04
16F:→ t64141: 反射其实是很不建议的下下策,直接加个GetName()或是改成p 04/30 00:34
17F:→ t64141: ublic string Name{get; private set;} 都比反射好很多 04/30 00:34
18F:→ annies5: 继承就好了啊, public class D: C{} 05/09 14:33
19F:推 WoodChen: 继承之後还是没有 Name 吧? 05/13 17:17
20F:推 Peruheru: Private继承了也没用 05/16 15:22