![](/img/trans.png)
[英]C# Reflection method GetProperties(BindingFlags.Instance) not returning child class objects
[英]System.Reflection.BindingFlags.Instance correspondence to C# access modifers
System.Reflection.BindingFlags Public,NonPublic和Instance如何與C# 訪問修飾符相對應?
以下對應表是否正確?
+-------------+--------+---------+-----------+----------+--------------------+
| BindingFlag | Public | Private | Protected | Internal | Protected Internal |
+-------------+--------+---------+-----------+----------+--------------------+
| Instance | No | No | No | Yes | Yes |
| NonPublic | No | Yes | Yes | No | No |
| Public | Yes | No | No | No | No |
| * | Yes | Yes | Yes | Yes | Yes |
+-------------+--------+---------+-----------+----------+--------------------+
* Instance | NonPublic | Public
有沒有辦法理解這個? 例如,如果Instance對應於Internal,為什么它不僅僅稱為Internal?
您的表格不是100%正確。
實例意味着這是一個“實例方法”,這意味着非靜態。 如果要獲取非靜態方法,則使用“實例”過濾器。 如果你想獲得靜態方法,那么你就不能把這個過濾器。
NonPublic表示除公共方法之外的任何內容。 因此,如果您使用NonPublic過濾器,那么您將獲得私有,受保護,內部和受保護的內部方法。
公共意味着公共方法,沒有其他方法。
你的表應該是這樣的:
+-------------+--------+---------+-----------+----------+--------------------+
| BindingFlag | Public | Private | Protected | Internal | Protected Internal |
+-------------+--------+---------+-----------+----------+--------------------+
| NonPublic | No | Yes | Yes | Yes | Yes |
| Public | Yes | No | No | No | No |
+-------------+--------+---------+-----------+----------+--------------------+
將“Instance”過濾器放在此表中是沒有意義的,因為Instance不處理方法的訪問級別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.