Windows Forms类部分公共问题

时间:2009-07-23 03:55:40

标签: c# .net winforms class visual-studio-2008

我正在使用VSTS 2008 + C#+ .Net 2.0来开发Windows窗体应用程序。我发现默认情况下,我们创建的新表单将被标记为公共部分。

我担心公开课是否存在安全风险?我们应该将其标记为私人吗?如果我们将其标记为私有,会对功能产生什么影响?

顺便说一句:我将来自public partial的类标记为private时遇到了编译错误。这是编译错误信息,任何想法有什么问题?

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

2 个答案:

答案 0 :(得分:2)

如果您将其定义为私有,那么拥有该课程的目的是什么?该文件之外的任何人都无法访问它。甚至不是你的主程序(可能在Program.cs上运行)。

Partial意味着您的类被划分,因此您的Form类包含的组件多于Form.cs文件中的组件。 VS只是将自动生成的代码放在一个文件中,将代码放在另一个文件中。因此,除非将所有生成的代码移动到单个文件中,否则不能消除部分,但如果您这样做并使用表单设计器更改标签字体,那么您就是厄运!。

答案 1 :(得分:1)

正如错误消息所说的那样 - 在命名空间作用域中声明的类(和其他类型)不能是private,因为private表示“没有人但是封闭的类可以看到这个”,并且在命名空间范围内没有封闭类。

如果您希望从汇编之外看不到该类,则应使用internal