首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从AddressOf对象获取MethodInfo

从AddressOf对象获取MethodInfo
EN

Stack Overflow用户
提问于 2016-10-26 20:22:31
回答 1查看 192关注 0票数 2

我有以编程方式创建的标签,并希望为每个事件处理程序提供特定的事件处理程序。所以,不是这样做的:

代码语言:javascript
复制
AddHandler Label1.Click, AddressOf SomeSub1
AddHandler Label2.Click, AddressOf SomeSub2
AddHandler Label3.Click, AddressOf SomeSub3
...

我希望能把它变成一个循环,以避免出现上述情况。所以我做了:

  • 标签列表
  • 从标签所在的主类继承的类中所有我已经构建的私有Subs的MethodInfo数组

我使用了上述方法,并提出了以下建议:

代码语言:javascript
复制
Dim separateClass As New SeparateClass
Dim methodInfo() As MethodInfo = separateClass.GetType.GetMethods(BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.DeclaredOnly)

For i As Integer = 0 to End
    labelList.Add(New Label())
    AddHandler labelList.Last.Click, AddressOf [Delegate].CreateDelegate(GetType(SomeDelegate), separateClass, methodInfo(i)).GetMethodInfo
Next

这确实编译了,但是Subs没有被触发。以下内容也编译,但行为方式相同:

代码语言:javascript
复制
For i As Integer = 0 to End
    labelList.Add(New Label())
    AddHandler labelList.Last.Click, AddressOf methodInfo(i).getBaseDefinition
Next

有什么方法可以从AddressOf对象中获取适当的MethodInfo吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-26 20:23:40

[Delegate].CreateDelegate已经创建了一个委托对象;您不应该使用AddressOf

不过,你可能需要投它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40271497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档