gpt4 book ai didi

vb.net - 我可以将类引用作为参数传递给 VB Net 中的函数吗?

转载 作者:行者123 更新时间:2023-12-02 11:30:39 24 4
gpt4 key购买 nike

如果我使用了不恰当的术语或者听起来像个十足的菜鸟,请原谅我。

当调用类库中的子程序时,我不想传递实例化的表单,而只是传递对表示表单的类的引用。然后我想从类库函数中实例化表单。这可能吗?

类似于以下内容:

在主应用程序中:

ClassLib.MyClass.DisplayForm(GetType(Form1))

然后,在类库中:

Public Class MyClass

Public Shared Sub DisplayForm(WhichFormClass As Type)
Dim MyForm as Form = WhichFormClass.CreateObject() 'Getting imaginitive
MyForm.ShowDialog()
End Sub

End Class

希望我的例子能够传达我想要实现的目标。如果您认为我的方法是假的,我愿意接受其他策略。

最佳答案

除了 MotoSV 的答案之外,这里还有一个仅使用泛型的版本:

Public Shared Sub DisplayForm(Of T As {New, Form})()
Dim instance = New T()
instance.ShowDialog()
End Sub

你可以这样使用:

DisplayForm(Of Form1)()

通过这种方法,您可以确保传递的类型是表单,并且实例具有 ShowDialog() 方法。没有必要进行最终可能会失败的转换。但是,需要在设计时知道类型参数才能调用该方法。

关于vb.net - 我可以将类引用作为参数传递给 VB Net 中的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com