2009-07-23 60 views
0

我使用VSTS 2008 + C#+ .Net 2.0開發Windows窗體應用程序。我發現默認情況下,我們創建的新窗體將被標記爲公開部分。Windows窗體類部分公開問題

我擔心的是將課堂公開是否存在安全隱患?我們應該把它標記爲私人?如果我們將其標記爲私有,則對功能有任何影響?

順便說一句:我從公共部分標記類爲private時遇到編譯錯誤。這裏是編譯錯誤信息,任何想法有什麼錯誤?

Error 1 Elements defined in a namespace cannot be explicitly 
declared as private, protected, or protected internal C:\FooTest\Form1.Designer.cs 

回答

1

這正是作爲錯誤信息說 - 在命名空間內聲明的類(和其他類型)不能private,因爲private的意思是「沒有一個人,但所包含的類可以看到這個」,而且也沒有封閉類時命名空間範圍。

如果您不想從組件外看到班級,應該使用internal

+0

如果我將它標記爲內部,對Windows窗體應用程序的任何功能影響?例如,不知道.Net運行時是否會使用反射來處理其他程序集中的類(如果標記爲內部,則不允許包含.Net程序集在內的其他程序集的訪問)? – George2 2009-07-23 04:18:02

+1

爲什麼.NET運行時需要從其他程序集中操縱你的表單類?它可能需要操作你的類的_instance_的_members_(例如,如果你使用數據綁定的話),但是這並不會因爲使用「internal」類而受到影響。所以它會正常工作。 – 2009-07-23 04:38:45

2

如果你定義它是私人的,那麼上課的目的是什麼?該文件以外的任何人都無法訪問它。甚至沒有你的主程序(可能運行在Program.cs中)。

部分意味着你的類被分開了,所以你的Form類比你的Form.cs文件中有更多的組件。 VS只需將自動生成的代碼放入一個文件中,並將代碼放入另一個文件中。因此,除非將所有生成的代碼移動到單個文件中,否則無法消除該部分,但如果這樣做並使用表單設計器來更改標籤字體,那麼您就是厄運了!