我只是想知道有(Name)属性,它表示Form类的名称.此属性在命名空间内用于唯一标识Form是其实例的类,并且在Visual Basic的情况下,用于访问表单的默认实例.
现在,这个默认实例的来源,为什么C#不能有一个等效的方法.
另外例如,为了在C#中显示一个表单,我们执行以下操作:
// Only method
Form1 frm = new Form1();
frm.Show();
Run Code Online (Sandbox Code Playgroud)
但是在VB.Net中我们有两种方法可以做到:
' First common method
Form1.Show()
' Second method
Dim frm As New Form1()
frm.Show()
Run Code Online (Sandbox Code Playgroud)
我的问题来自第一种方法.这是什么Form1,它是一个实例 Form1或Form1类本身?现在,正如我上面提到的,Form名称是VB.Net中的Default实例.但我们也知道这Form1是一个定义的类,Designer那么实例和类名的名称是如何相同的?如果Form1是一个类,则没有名为Show()的(Static\Shared)方法.那么这种方法来自哪里?
他们在生成的IL中有什么不同?
最后为什么C#不能与之相提并论呢?
我实际上正在研究和研究VB.NET.我的学校正在使用VS2010,我专业使用VS2012.当我必须Mdicontainer在VS2010中调用一个Windows窗体时,我只使用它的类名,例如:
FormX.MdiParent = Me
FormX.Show()
Run Code Online (Sandbox Code Playgroud)
但是当我使用VS2012时,似乎我必须创建一个我的实例mdichild,就像这样:
Dim form As New FormX()
form.MdiParent = Me
form.Show()
Run Code Online (Sandbox Code Playgroud)
我的问题是:只是我做错了或VS改变了我们使用WinForms的方式?