gpt4 book ai didi

vb.net - 将 Sub 包装为函数以便在 Lambda 中使用

转载 作者:行者123 更新时间:2023-12-04 23:53:34 25 4
gpt4 key购买 nike

我对 VB9 和 Moq 有疑问。

我需要调用一个 Sub 验证。像这样:

logger.Verify(Function(x) x.Log, Times.AtLeastOnce)

我的记录器看起来像这样:

Public Interface ILogger
Sub Log()
End Interface

但是对于 VB,这是不可能的,因为 Log 方法是一个 Sub,因此不会产生值。

我不想将方法更改为函数。

解决此限制的最简洁方法是什么?有没有办法将 Sub 包装为如下所示的函数?

logger.Verify(Function(x) ToFunc(AddressOf x.Log), Times.AtLeastOnce)

我试过了,但是我得到:

Lambda Parameter not in scope

最佳答案

VB10 允许使用 Lambada Subs。

你试过简单的包装器吗,比如:

Public Function Wrapper(source as Action) as Boolean  
source.Invoke()
Return True
End Function

关于vb.net - 将 Sub 包装为函数以便在 Lambda 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2514196/

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