我已替换(正则表达式)所有对默认表单实例在我的项目中,我现在想确保我不再使用默认实例。
似乎默认实例功能无法禁用(不改变类的ctor)
任何人都知道如何在 VB.Net 中查找默认表单实例的所有用法(或者 - 使用类名访问非共享成员)
仅供参考:我正在将 VS2017 与 ReSharper 一起使用
与普遍的看法相反,这一代人默认实例在 WinForm 应用程序中,这不是 Visual Basic 的强制功能。
来自 Visual Basic 语言规范第 11 版(添加了重点):
11.6.2 默认实例 在某些情况下,从公共基类派生的类通常或总是只有一个实例。为了
例如,用户界面中显示的大多数窗口只有一个
实例随时显示在屏幕上。为了简化工作
这些类型的课程,Visual Basic可以自动生成类的默认实例提供单个、轻松
每个类的引用实例。
问题是我不知道任何文档可以告诉您如何启用/禁用它们的创建。据了解,该功能是应用框架可以在项目属性页的“应用程序选项卡”中启用/禁用。但是,禁用应用程序框架不会禁用默认实例生成。
如果在创建项目时选择“Windows 窗体应用程序”模板,而是选择“空项目”模板并继续添加窗体,则可以创建一个 WinForm 项目,其中“启用应用程序框架”复选框为变灰并且不可选择。您还会发现无法使用默认表单实例。由此,您可以推断出该功能可以通过“*.vbproj”文件进行配置。
控制项是<MyType>
标签。该属性的可能值为:
- 空 - 应用程序框架不可用
- Console
- Windows 窗体 - 启用应用程序框架
- WindowsFormsWithCustomSubMain - 禁用应用程序框架
- Windows - 类库
- WebControl - 库
因此,如果您想将现有项目转换为不支持默认实例的项目,您可以编辑“*.vbproj”文件并更改<MyType>
财产给Empty.
请注意,这样做还将消除应用程序框架的其他功能,例如My.Computer
and My.User
,但您始终可以自己实现这些功能,如中所述如何:使用我的命名空间(C# 编程指南).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)