2011-02-28 63 views
5

我有一個(非常)複雜的文件與通常的組件混合。是否可以在其自己的類中隱藏一個字段(或只是操作/隱藏自動完成)?

我有一個字段(稱爲keyloaded)和一個鏈接屬性(稱爲Keyloaded)。

雖然在課堂上工作,我不小心直接操縱領域而不是財產。

這很可能是因爲我對這一切還是比較有點新的(我現在三重檢查!),但是,這已經是一個私人領域,並且與這個班的合作非常好。有沒有簡單的我可以做的,將它從​​Autocomplete中刪除?

如果不是,類似情況的最佳做法是什麼?

雖然寫了這個問題,我突然想起在我的書中,他們談到了下劃線......這是最好的解決方案 - 讓它看不見?

回答

1

我認爲微軟當前的Code Syntax標準說Fields或Properties可以是Pascal Case。然而,我始終堅持這樣的約定,即字段應該以下劃線開頭。更改爲已加載_keyloaded。我想你會發現通過這種方式來識別字段,屬性和本地人之間的區別要容易得多。

+0

在此還看到:http://stackoverflow.com/questions/450238/to-underscore-or-to-not-to-underscore-that-is-the-question – codemouse 2011-02-28 19:33:31

+0

聽起來不錯... – Wil 2011-02-28 19:34:10

+0

它還有助於消除具有相同名稱的字段/屬性的案例相關問題之間的混淆。我也同意KBoek--你可以創建一個自動實現的屬性。如果您只想在該類中設置公共屬性,請將語法更改爲:public bool Keyloaded {get;私人設置; } – codemouse 2011-02-28 19:43:23

2

我使用下劃線作爲專用字段的前綴,如「_keyloaded」。如果屬性只設置和獲取領域,考慮創建一個自動屬性是這樣的:

public bool Keyloaded { get; set; }
+0

它不止於此 - 所以自動屬性出來了,但謝謝。對於命名約定。 – Wil 2011-02-28 19:35:24

6

像布賴恩和KBoek提到你可以以下劃線開頭的領域。但是如果你真的想隱藏一個方法/字段/屬性,你可以設置屬性,如圖所示。這將防止方法/字段/屬性顯示在intellesense中。但是,該成員仍然可以訪問。

<System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)> _ 
Public Property HiddenProperty() 
    Get 
     return _hiddenProperty 
    End Get 
    Set (value as object) 
     _hiddenProperty = value 
    End Set 
End Sub 
+0

非常有趣,+1然而,這是領域,而不是我想隱藏的財產。這是否會改變任何與編譯/輸出或這是嚴格只在VS /編輯器? – Wil 2011-02-28 19:49:00

+0

您應該可以將字段添加到該字段中。它根本不會改變編輯,嚴格在編輯器中。 – PeterM 2011-02-28 19:50:26