VB   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了导致VB.NET允许的类似VB6的气味改为错误:WinFormType.InstanceProp = Value [DISABLE My.Forms]大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到VB.Net对Winform对象的处理非常讨厌.

这已经破坏了我们几个小时的时间.它只会变得更糟,因为我们有更多的VB6程序员用来做这样的事情,并且自动转换的代码从vb6直接带来了构造.

这是一种可接受的做事方式:

Dim FormInstance as New FormClassName
If FormInstance.ShowDialog() = DialogResult.oK then
    TheAnswer = FormInstance.TextBox1.Text
EndIf

但是,它允许这样:

If FormClassName.ShowDialog() = DialogResult.oK then
    TheAnswer = FormClassName.TextBox1.Text
EndIf

请记住,属性和方法不是共享的.转换应用程序框架并不重要.似乎在幕后,VB实例化了表单的全局副本,并将此语法重新路由到该全局引用.你可以想象这对现代节目造成的破坏!通常开发人员会把它扔进去或者我们会错过从转换中清除一些模糊的代码(是的,我现在正在寻找这个,所以这有帮助).

我可以做出任何设置来引发错误消息,例如,引用非共享成员需要一个对象引用,就像它应该的那样?

这是解决方案:

我选择了jmoreno的答案,因为他指出了我的罪魁祸首:My.Forms.修复它就像把它放在一个模块中一样简单:

Namespace My.MyProject.MyForms
End Namespace

然后你得到我上面提到的确切错误.就像你应该的那样.如果您需要遗留应用程序(一件好事),那么就不要这样做!我认为Gserg可能只是VB抨击(有趣但没有帮助),但他马上提到了这一切,因为我找到了答案,我们再次对vb不再吮吸,除非你不熟悉它.

请注意,如果您使用应用程序框架,则会在application.designer中收到您不想要的错误.修复:

Protected Overrides Sub OnCreateMainForm()
        ''//was: Me.MainForm = Global.WindowsApplication2.Form1
        Me.MainForm = New Form1
    End Sub

希望这对任何不良副作用都是如此!

JMoreno的反思等

大佬总结

以上是大佬教程为你收集整理的导致VB.NET允许的类似VB6的气味改为错误:WinFormType.InstanceProp = Value [DISABLE My.Forms]全部内容,希望文章能够帮你解决导致VB.NET允许的类似VB6的气味改为错误:WinFormType.InstanceProp = Value [DISABLE My.Forms]所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。