gpt4 book ai didi

c# - 将包含 NSubstitute 代码的 C# 语句转换为 VB.net

转载 作者:行者123 更新时间:2023-11-30 22:06:38 26 4
gpt4 key购买 nike

在阅读 NSubstitute 教程时,我将用 C# 编写的示例转换为 VB.net 以了解其功能,但我需要您对这些(不相关的)语句的支持,尽管我非常小心,但我无法转换它们:

1.

calculator().Received().Add(1, Arg.Is(Of Integer)(function(x) new[] {-2,-5,-10}.Contains(x)))

2.

注意:foo 是一个派生对象,来自一个名为“SayHello”的无效方法的接口(interface)

foo.When(x >= x.SayHello("World")).Do(x => counter++);

3.

calculator().When(x >= x.Add(-2, -2)).Do(x => { throw new Exception(); });

注意:engine 是这个接口(interface)的派生对象:

public interface IEngine {
event EventHandler Idling;
event EventHandler<LowFuelWarningEventArgs> LowFuelWarning;
event Action<int> RevvedAt;
}

4.

engine.Idling += (sender, args) => wasCalled = true;

5.

engine.Idling += Raise.EventWith(new object(), new EventArgs());

6.

engine.RevvedAt += rpm => revvedAt = rpm;

希望在您的支持下,我能够自行转换剩余的语句。

提前致谢

迈克尔

最佳答案

看来您想转换 Lambda 并添加事件处理程序。

来自 C# 的 Lambda

.Where(x => x.Foo = 1)
.Do(x => x.Bar())

翻译成

.Where(function(x) x.Foo = 1)
.Do(sub(x) x.Bar())

在 VB.Net 中,您必须考虑 Labda 实际执行的是功能还是子功能,并相应地对其进行编码。

在c#中添加事件

engine.Idling += MyEventHandler

VB.Net

AddHandler engine.Idling, AddressOf MyEventHandler

VB.Net 让您可以像这样添加事件。删除事件是通过关键字 RemoveHandler

完成的

关于c# - 将包含 NSubstitute 代码的 C# 语句转换为 VB.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513811/

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