程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 私有方法是封閉的?使用反射來調用一個對象的私有方法。,私有封閉

私有方法是封閉的?使用反射來調用一個對象的私有方法。,私有封閉

編輯:C#入門知識

私有方法是封閉的?使用反射來調用一個對象的私有方法。,私有封閉


當我們學習C# 時接觸的第一套關鍵字 可能就是 Private, Public, protect。

Private的定義是: 用此關鍵字定義的方法和變量只能在對象內部使用。

但是這是絕對的麼?有沒有辦法在調用者的空間中使用Private定義的方法或者變量呢?

讓我們定義如下一個類:

那在這個簡單程序中我們可以訪問_priavateValue麼?

當我們嘗試編譯這段簡單程序時會得到一個編譯錯誤。

'PrivateCallByReflection.testObj.returnPrivateValue()' is inaccessible due to its protection level

那麼private 真的就是安全的,只能內部訪問的麼?

一個小小的trick即可得到我們想要的結果

請注意下劃線標示的代碼。

反射幫助我們訪問了一個Private的方法。

無下限的反射,真的是沒什麼不可以的。。。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved