BaseClass私有函數如何在C#中的DerivedClass中訪問?私人成員如何在C#中的派生類中訪問?
回答
+1私人領域。如果您能夠更改基類,則這是受保護的訪問修飾符對於 – fletcher 2010-08-20 08:27:39
或者:
- 擡高從
private
其訪問protected
- 或,添加另一個保護部件訪問它,並且從派生的類
- 或,使用反射
- 使用該代替或者更改代碼,以便您不需要訪問它
4,我如果是私人財產或方法,則選擇1;如果是私人領域,則選擇2。我會在該字段周圍添加受保護的屬性。
它不能。如果您希望方法可以被派生類訪問,那麼您需要改爲使用protected
。
此答案只是爲了完整。在幾乎所有情況下,請使用其他答案中的建議。
其他的答案是正確的,但有一個情況,即派生類可以訪問基類的私有成員:當派生類是嵌套類的基類。這實際上可以成爲模仿C#中的Java枚舉的有用功能。示例代碼(不是Java的枚舉,只是「訪問私有成員」位。)
public class Parent
{
private void PrivateMethod()
{
}
class Child : Parent
{
public void Foo()
{
PrivateMethod();
}
}
}
不起作用。 – Swathi 2010-08-20 11:01:52
@Swathi:那麼我發佈的代碼編譯沒有問題,所以我不知道問題是什麼。請提供更多細節。 (「它不工作」幾乎從來沒有一個有用的東西自己說。*明顯的*後續問題是「以什麼方式不起作用?」) – 2010-08-20 11:04:32
與反思:
FieldInfo f = typeof(Foo).GetField("someField", BindingFlags.Instance | BindingFlags.NonPublic);
fd.SetValue(obj, "New value");
k,我得到了...謝謝你! – Swathi 2010-08-20 10:56:30
- 1. C++如何訪問派生類中的基類靜態成員?
- 2. C++派生類訪問基類成員
- 3. 如何在派生類中訪問基類的私有數據成員?
- 4. 如何讓派生類訪問私有成員數據?
- 5. 訪問基類成員中派生
- 6. C++訪問鹼的私人結構中派生類
- 7. 派生類可以訪問其基類的私有成員
- 8. C#在派生類中訪問受保護的成員
- 9. 在派生類中實現虛函數時訪問基類私有成員
- 10. 如何訪問派生類中的受保護成員?
- 11. 基類的私有數據成員如何被派生類訪問?
- 12. 如何使該類內的派生類不能訪問私有成員?
- 13. C++派生的基類朋友函數訪問私人家長?
- 14. 具有私人訪問說明符的C++派生類
- 15. 無法訪問受保護的類成員在派生類中
- 16. C++從派生類訪問私有成員到另一個派生類(兩者具有相同的基類)
- 17. 訪問繼承的私有基類成員...通過派生類對象...在基類成員中創建
- 18. 訪問C++父類的私有成員
- 19. C++:從派生類訪問基地或全局變量的私有成員
- 20. 如何從另一個派生類訪問派生類的成員?
- 21. 通過基類指針訪問派生類的成員C++
- 22. 私人虛函數在派生類中
- 23. 訪問派生類中的類的受保護成員
- 24. 訪問私有類中的成員
- 25. 私人類構造函數不能訪問私人成員
- 26. 受保護的成員不能在派生類中訪問
- 27. 訪問私有成員C++
- 28. 基類的私有成員是否始終在C++的派生類中繼承?
- 29. 重寫基類的私有成員的行爲在派生類中,C++
- 30. C++:允許訪問受保護的類的成員,而不是私人成員
創建公共屬性來訪問基類 – 2010-08-20 08:26:24