[问题] 提取的方式

楼主: wind681201 (阿风~~)   2018-04-28 16:59:31
问题是这样的,常常会遇到这样的问题
public class C(){
private string Name;
}
简单的例子,如上,常常会在开发上,需要用到之前的类别里面,的一些资讯
像上面的例子,我需要 Name这个变量,但又不想修改 Class C,请问这样的需求,
大家都会怎么做?
作者: vi000246 (Vi)   2018-04-28 17:19:00
再加一个public string GetName(){return this.Name};如果不能修改class的话应该是无解
作者: Litfal (Litfal)   2018-04-28 17:54:00
不能改class的话,还可以用反射
楼主: wind681201 (阿风~~)   2018-04-28 21:57:00
请问反射怎么使用?可以抓到private?
作者: geminily (geminily)   2018-04-28 23:13:00
既然先前设计的类别成员会被使用到,为什么不像一楼一样设计一个公开的方法提取@@?
楼主: wind681201 (阿风~~)   2018-04-29 09:14:00
目前是使用一楼方式,只是想问有什么更好的辨法
作者: s4300026 (s4300026)   2018-04-29 13:46:00
如果name会某些因素更新,用prop的方式可以呼叫到最新的name你应该要问的是: 为什么name不被开放出来给外部的人使用?
作者: Litfal (Litfal)   2018-04-29 15:53:00
可以改当然是改类别简单又快速,不能改才考虑用反射去hack另外你知道prop可以设存取子吧?
楼主: wind681201 (阿风~~)   2018-04-29 21:04:00
知道,只是想找不用改之前人家写的方式,来处理
作者: vi000246 (Vi)   2018-04-29 23:55:00
反射的用法https://goo.gl/KY4tVD
作者: t64141 (榕树)   2018-04-30 00:34:00
反射其实是很不建议的下下策,直接加个GetName()或是改成public string Name{get; private set;} 都比反射好很多
作者: annies5 (念渝)   2018-05-09 14:33:00
继承就好了啊, public class D: C{}
作者: WoodChen (木头)   2018-05-13 17:17:00
继承之后还是没有 Name 吧?
作者: Peruheru (还在想)   2018-05-16 15:22:00
Private继承了也没用

Links booklink

Contact Us: admin [ a t ] ucptt.com