我正在使用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
答案 0 :(得分:2)
如果您将其定义为私有,那么拥有该课程的目的是什么?该文件之外的任何人都无法访问它。甚至不是你的主程序(可能在Program.cs上运行)。
Partial意味着您的类被划分,因此您的Form类包含的组件多于Form.cs文件中的组件。 VS只是将自动生成的代码放在一个文件中,将代码放在另一个文件中。因此,除非将所有生成的代码移动到单个文件中,否则不能消除部分,但如果您这样做并使用表单设计器更改标签字体,那么您就是厄运!。
答案 1 :(得分:1)
正如错误消息所说的那样 - 在命名空间作用域中声明的类(和其他类型)不能是private
,因为private
表示“没有人但是封闭的类可以看到这个”,并且在命名空间范围内没有封闭类。
如果您希望从汇编之外看不到该类,则应使用internal
。