行,所以我明白離子VB6,在類封裝的屬性可以屬於三種類別之一:是什麼公共財產,朋友和公共變量在VB6的區別
- 公共財產
- 朋友
- 公共變量
的是這之間的區別,以及如何做這些比較公共和私人性質的更現代的語言如C#?
行,所以我明白離子VB6,在類封裝的屬性可以屬於三種類別之一:是什麼公共財產,朋友和公共變量在VB6的區別
的是這之間的區別,以及如何做這些比較公共和私人性質的更現代的語言如C#?
的範圍預選賽Public
Friend
determine不同項目中的客戶端是否可以看到該項目。
Public
項目將是客戶端代碼訪問在其它項目 ,並在同一個項目代碼。Friend
項目只能在同一個項目中編碼,而不是以在其他項目中編碼。Private
只有在同一課程中才可以訪問這些項目。屬性從公共變量不同的,因爲性能可以當客戶端獲取或設置值執行自己的代碼。 編輯以下Deanna的評論:還要注意,變量可以通過ByRef傳遞給一個函數,並且更改將按預期工作。屬性不屬於這種情況。
NB C#可能更現代化,但恕我直言,VB6處理屬性和公共變量是significantly better比.Net處理。
恕我直言,微軟公司在.Net中的屬性和公共領域之間產生了一個真正的設計錯誤。不服氣?在第一次發佈.Net之後,C#和VB編譯器被修改爲支持automatically implemented properties。這些允許您只用一行代碼創建屬性,以便稍後可以在get/set上添加邏輯而不會導致問題。恕我直言,這證明公共變量應該與屬性無法區分。
1假設你的項目類型實際上允許通過其他項目(即的ActiveX DLL,OCX或ActiveX EXE)使用你的類。
2在Property Get
,Property Let
和Property Set
程序中。
在VB6中,在類中定義的公共變量作爲屬性編譯在封面下。這可以通過使用諸如OLE View之類的工具在編譯後檢查dll來查看。它們與您提到的「自動實施的屬性」相同。 – tcarvin 2012-03-12 20:39:52
對不起,當我看到「在VB6中,您可以將公共變量轉換爲屬性而不會破壞客戶端」我認爲這可能給OP帶來的印象是VB6在公開變量中有公共變量。 – tcarvin 2012-03-13 11:50:22
另請注意,變量可以通過ByRef傳遞給函數,並且更改將按預期工作。屬性不屬於這種情況。我期望這就是爲什麼他們被分成.NET/IL中的字段和屬性的原因。 – Deanna 2012-03-13 12:52:20
變量和財產的allmost相同。物業是首選,因爲你可以設置,如果其它類可以設置或獲取變量(屬性封裝了可變)
在C#中是一樣的,只有你用內部,而不是朋友
私有財產是我們和其他家庭成員使用的財產。但是,公共財產是我們社區,社會或國家所有人使用的財產。
這種簡單的比喻,但我認爲它很好地描述了它。 – 2016-08-11 04:36:42
呃,你忘了私人財產。無論如何,通過閱讀手冊可以很容易地回答這個問題。 – Bob77 2012-03-12 22:22:30