我只是碰到一個未知的c#概念對我來說 任何人都可以告訴我內部設置屬性的目的嗎? 這是什麼用途? 我知道內部關鍵字用於在程序集內工作。什麼是C#中的內部集屬性?
26
A
回答
48
如果你有一個內部設置訪問器(和公共獲取訪問器)的屬性,這意味着程序集內的代碼可以讀取(獲取)和寫入(設置)屬性,但其他代碼只能讀取它。
您可以通過閱讀關於internal access modifier,public access modifier和properties來推導出上述信息。
此外,你可以閱讀約Restricting Accessor Accessibility。
1
這意味着該屬性只能由與該屬性相關的類位於同一個程序集中的代碼進行設置。
1
它是一種構造,它允許屬性的值僅由同一程序集內的代碼設置。
2
如果使用內部訪問修飾符標記屬性設置器,則只有駐留在程序集中的類可以設置該屬性。
public string MyProperty { get; internal set; }
9
在C#2.0中,您可以設置的獲取和設置可訪問性。
下面的代碼顯示瞭如何創建一個具有內部集合和public get的私有變量。 Hour屬性現在只能從同一模塊(dll)中的代碼中設置,但可以由使用包含該類的模塊(dll)的所有代碼訪問。
// private member variables
private int hour;
// create a property
public int Hour
{
get { return hour; }
internal set { hour = value; }
}
7
假設您正在設計一個供其他程序員使用的API。在此API中,您有一個對象Foo
,其中有一個屬性Bar
。您不希望其他程序員在引用您的程序集時設置Bar
的值,但您需要從API中自行設置值。只要財產申報這樣:
public class Foo
{
public string Bar { get; internal set; }
}
3
給出聲明public string MyString {get; internal set;}
的屬性,這意味着
- 可以從withhin你的應用程序的任何地方閱讀屬性的值(
public string MyString
) - 但你可能只有寫一個新的價值從屬性組件其中聲明 - 或來自朋友程序集。 (
internal set;
)
相關問題
- 1. 什麼是XAML中的內容屬性?
- 2. 什麼是C#中的屬性
- 3. C#中屬性的用途是什麼?
- 4. 什麼是彈性基礎屬性集?
- 5. ECMAScript中內部屬性的定義是什麼?
- 6. C#中的內部屬性設置器
- 7. 什麼是這個元內容屬性?
- 8. 什麼是屬性?
- 9. Objective-C屬性 - 「id」是什麼意思?
- 10. 什麼是以下屬性C#
- 11. 是什麼[選項(...)] C#屬性是什麼意思?
- 12. 目標c中「C#屬性」的等價控制是什麼?
- 13. uitableviewcell的屬性是什麼?
- 14. C#的屬性集
- 15. 什麼是強屬性屬性
- 16. 什麼決定的集合屬性
- 17. C#內部靜態外部與InternalCall屬性 - 內部或外部?
- 18. LoginPageLink中的'Type'屬性值是什麼?
- 19. xml中的'base'屬性是什麼?
- 20. 什麼是rails中的「嵌套屬性」?
- 21. Groovy中的「屬性」是什麼?
- 22. 什麼是HTML中的枚舉屬性?
- 23. java中屬性的含義是什麼?
- 24. XML屬性中的問號是什麼?
- 25. Magento:magento中的屬性TYPES是什麼?
- 26. Python中的屬性「__class__」是什麼
- 27. 屬性中的ownerType是什麼?
- 28. 什麼是Java中的「mnemonicParsing」屬性FX
- 29. javascript src屬性中的rootpath是什麼?
- 30. AndroidManifest中的android:supportsRtl屬性是什麼
+1,此外,我可能想添加到您的答案,我已經看到在兩種情況下使用的內部集:1)「隱藏」的東西,這可能不是一個好辦法並指向一個設計流程和2.)單元測試目的 – UrbanEsc
UrbanEsc我同意這似乎指向一個設計缺陷,大多數時候你看到它。我剛剛在我正在處理的一些代碼中遇到了這個問題,它似乎是另一個類的依賴關係的源頭(因爲它可以克服對私有訪問的限制)。您不得不想知道爲什麼人們選擇諸如這比事情更明顯。 – Sprague