gpt4 book ai didi

c# - 将函数作为函数参数传递

转载 作者:行者123 更新时间:2023-11-30 19:52:42 25 4
gpt4 key购买 nike

Unity C# 似乎无法识别 Func<>作为函数委托(delegate)的符号。那么,如何将函数作为函数参数传递?

我有一个想法 Invoke(functionName, 0)可能有帮助。但我不确定它是否真的立即调用该函数,或者等待帧结束。还有别的办法吗?

最佳答案

你可以使用 Action 来做到这一点

using System;

// ...

public void DoSomething(Action callback)
{
// do something

callback?.Invoke();
}

或者传入一个方法调用

private void DoSomethingWhenDone()
{
// do something
}

// ...

DoSomething(DoSomethingWhenDone);

或使用 lambda

DoSomething(() =>
{
// do seomthing when done
}
);

您还可以添加参数,例如

public void DoSomething(Action<int, string> callback)
{
// dosomething

callback?.Invoke(1, "example");
}

然后再次传入类似的方法

private void OnDone(int intValue, string stringValue)
{
// do something with intVaue and stringValue
}

// ...

DoSomething(OnDone);

或者一个 lambda

DoSomething((intValue, stringValue) =>
{
// do something with intVaue and stringValue
}
);

或者也可以参见 Delegates

特别是对于具有动态参数计数和类型的委托(delegate),请查看this post

关于c# - 将函数作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54772578/

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