gpt4 book ai didi

c# - 在 Action 方法中调用的好方法

转载 作者:行者123 更新时间:2023-12-01 17:45:38 24 4
gpt4 key购买 nike

如何调用项目以便 TestAction 写出“s.Hello”?现在我什么也没做,它跳过了“action = s..”行。

或者是另一种方法来做到这一点?由于我不想返回任何代码,因此我使用 Action 而不是 Func

我刚刚开始使用 Action。

public class Items
{
public string Hello { get; set; }
}

public class TestClass
{
public void TestAction(Action<Items> action)
{
action = s => Console.WriteLine(s.Hello);
}

public TestClass()
{
TestAction(b => b.Hello = "Hello world!");
}
}

最佳答案

让我们从堆栈跟踪的底部深入了解您的代码。

  1. TestAction(b => b.Hello = "Hello world!");

您正在提供一个将 b.Hello 指定为“Hello World”的 lambda。

  1. action = s => Console.WriteLine(s.Hello);

您正在为同一个委托(delegate)分配一个新的 lambda。

您实际上并没有对它们做任何事情 - 您只是生成一个委托(delegate)。要执行该委托(delegate),您需要一个 Items 类的参数。您真正想要的是使用这样的参数调用操作。

public class TestClass
{
public void TestAction(Action<Items> action)
{
Items i = new Item() { Hello = "Hello World");
action(i);
}

public TestClass()
{
TestAction(b => Console.WriteLine(b.Hello));
}
}

关于c# - 在 Action 方法中调用的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4642781/

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