gpt4 book ai didi

c# - Unity3d,C#传递函数作为参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:17 29 4
gpt4 key购买 nike

我的 ScriptA 有很多 void 函数:

void methodOne() { 
some code
}

void methodTwo(int a, int b) {
}

我想传递给另一个脚本的静态方法。让我们说 scriptB:

ScriptB.staticMethod(methodOne, some, other, primitive, parameters);
ScriptB.staticMethod(methodTwo(a, b), some, other, parameters);

我的脚本的主要思想是 ScriptB 将从服务器获取数据并调用从 ScriptA 获取的方法以根据数据对我的游戏进行更改。

最佳答案

我不确定您要在这里实现什么。但是要回答您的问题,您可以使用委托(delegate)将方法作为参数传递。这是一个例子:

public class ScriptA
{
public delegate void MethodOneDelegate(int a, int b);

public void MethodOne(int a, int b)
{
Console.WriteLine(a + b);
}
}

public static class ScriptB
{
public static void StaticMethod(ScriptA.MethodOneDelegate function, int a, int b)
{
function(a, b);
}
}

public static void Main()
{
ScriptA scriptA = new ScriptA();
ScriptB.StaticMethod(scriptA.MethodOne, 1, 2);
}

还有其他解决方案,您可以看看 System.Func 和 System.Action。

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

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