vb.net – 我可以将类引用作为参数传递给VBNet中的函数吗?
发布时间:2020-12-17 07:23:06 所属栏目:百科 来源:网络整理
导读:如果我使用不正确的术语或听起来像一个完整的菜鸟,请原谅我. 在类库中调用sub时,我想传递的不是实例化的表单,而只是对表示表单的类的引用.然后我想从类库函数中实例化表单.这可能吗? 类似于以下内容: 在主要应用中: ClassLib.MyClass.DisplayForm(GetType
如果我使用不正确的术语或听起来像一个完整的菜鸟,请原谅我.
在类库中调用sub时,我想传递的不是实例化的表单,而只是对表示表单的类的引用.然后我想从类库函数中实例化表单.这可能吗? 类似于以下内容: 在主要应用中: 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()方法.没有必要的演员可能最终失败.但是,有必要在设计时知道类型参数以调用该方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- C#float.tryparse为法国文化
- oracle 9i\10gr1\10gr2归档模式切换
- 一个模块的功能为何要单一,为何代码不要太长
- Flex 中 DataGridColumn 根据单列返回值,标红需
- Reactor VS Proactor
- Resource: bean/Product.hbm.xml not found
- ruby-on-rails – 为Omniauth制定新策略,但Omnia
- c# – 获取已安装的Msi的产品代码
- objective-c – 如何在Swift中编写array.valueFo
- org.xml.sax.SAXParseException: Failed to read
热点阅读