[問題] 提取的方式

看板C_Sharp作者 (阿風~~)時間6年前 (2018/04/28 16:59), 編輯推噓6(6014)
留言20則, 9人參與, 6年前最新討論串1/1
問題是這樣的,常常會遇到這樣的問題 public class C(){ private string Name; } 簡單的例子,如上,常常會在開發上,需要用到之前的類別裡面,的一些資訊 像上面的例子,我需要 Name這個變數,但又不想修改 Class C,請問這樣的需求, 大家都會怎麼做? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.78.48 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1524905975.A.0BF.html

04/28 17:19, 6年前 , 1F
再加一個public string GetName(){return this.Name};
04/28 17:19, 1F

04/28 17:19, 6年前 , 2F
如果不能修改class的話應該是無解
04/28 17:19, 2F

04/28 17:54, 6年前 , 3F
不能改class的話,還可以用反射
04/28 17:54, 3F

04/28 21:57, 6年前 , 4F
請問反射怎麼使用?可以抓到private?
04/28 21:57, 4F

04/28 23:13, 6年前 , 5F
既然先前設計的類別成員會被使用到,為什麼不像一樓一
04/28 23:13, 5F

04/28 23:13, 6年前 , 6F
樣設計一個公開的方法提取@@?
04/28 23:13, 6F

04/29 09:14, 6年前 , 7F
目前是使用一樓方式,只是想問有什麼更好的辨法
04/29 09:14, 7F

04/29 13:46, 6年前 , 8F
如果name會某些因素更新,用prop的方式可以呼叫到最新
04/29 13:46, 8F

04/29 13:46, 6年前 , 9F
的name
04/29 13:46, 9F

04/29 13:48, 6年前 , 10F
你應該要問的是: 為什麼name不被開放出來給外部的人使
04/29 13:48, 10F

04/29 13:48, 6年前 , 11F
用?
04/29 13:48, 11F

04/29 15:53, 6年前 , 12F
可以改當然是改類別簡單又快速,不能改才考慮用反射去hack
04/29 15:53, 12F

04/29 15:58, 6年前 , 13F
另外你知道prop可以設存取子吧?
04/29 15:58, 13F

04/29 21:04, 6年前 , 14F
知道,只是想找不用改之前人家寫的方式,來處理
04/29 21:04, 14F

04/29 23:55, 6年前 , 15F
反射的用法https://goo.gl/KY4tVD
04/29 23:55, 15F

04/30 00:34, 6年前 , 16F
反射其實是很不建議的下下策,直接加個GetName()或是改成p
04/30 00:34, 16F

04/30 00:34, 6年前 , 17F
ublic string Name{get; private set;} 都比反射好很多
04/30 00:34, 17F

05/09 14:33, 6年前 , 18F
繼承就好了啊, public class D: C{}
05/09 14:33, 18F

05/13 17:17, 6年前 , 19F
繼承之後還是沒有 Name 吧?
05/13 17:17, 19F

05/16 15:22, 6年前 , 20F
Private繼承了也沒用
05/16 15:22, 20F
文章代碼(AID): #1Qv3Vt2_ (C_Sharp)