在 VB.NET 中,我们可以将原始对象作为参数传递而不实例化它吗?例如,我的项目formA和formB中有两个表格。现在我有这个代码。
Public Sub AddForm(Form Outer, Form Inner)
Inner.FormBorderStyle = FormBorderStyle.None
Inner.TopLevel = False;
Inner.Dock = DockStyle.Fill
Inner.WindowState = FormWindowState.Normal
Outer.Controls.Add(Inner)
Inner.BringToFront()
Inner.Show()
End Sub
现在我可以在任何情况下使用它,例如:
AddForm(formA, formB)
但 ...
在 C# 中使用相同的代码
public static void AddForm(Form Outer, Form Inner)
{
Inner.FormBorderStyle = FormBorderStyle.None;
Inner.TopLevel = false;
Inner.Dock = DockStyle.Fill;
Inner.WindowState = FormWindowState.Normal;
Outer.Controls.Add(Inner);
Inner.BringToFront();
Inner.Show();
}
我不能这样称呼它:
AddForm(formA, formB);
它给出了错误
formB 是类型,但用作变量。
相反,我必须这样称呼它:
AddForm(A, new B());
除此之外,在 VB.NET 中的任何类(如 formA)中,如果我键入 formA,我可以看到那里存在的所有对象和控件,但在 C# 中看不到。同样,我必须创建一个新实例才能查看所有控件。如果我想相互操纵两个正在运行和工作的实例,这将成为一个问题。那么我在这里缺少什么基本的东西?
(我是一名业余程序员,正在从 VB.NET 迁移到 C#。对于我最近发现的那些,事情进展顺利。)