VB.NET では、元のオブジェクトをインスタンス化せずに引数として渡すことはできますか? たとえば、プロジェクト formA と formB に 2 つのフォームがあります。今、私はこのコードを持っています。
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());
これとは別に、formA のような任意のクラスの VB.NET では、formA と入力すると、そこに存在するすべてのオブジェクトとコントロールが表示されますが、C# では表示されません。繰り返しますが、すべてのコントロールを表示するには、新しいインスタンスを作成する必要があります。2 つの実行中および作業中のインスタンスを相互に操作したい場合、これは問題になります。では、ここで欠けている基本的なことは何ですか?
(私は VB.NET から C# に移行しているアマチュア プログラマーです。最近わかったことを期待して、順調に進んでいます。)