使用带几个参数的匿名函数
Using anonymous function taking a few parameters
脚本示例。
function TakeCallback(param, param2, callback) {
var a = param;
var b = param2;
callback(a, b);
}
.... some context ...
TakeCallback("A", "B", function(one, two) {
var scopeA = one;
var scopeB = two;
});
C#
public void FuncWithCallback(int param, int param2, Func callback)
{
int myScope = param;
int myScope2 = param2;
callback(myScope, myScope2);
}
.... some context ....
.
.
FuncWithCallBack(10, 100, (x, y) => {
int AnotherScope = x;
int AnotherScope2 = y;
});
.
.
问题
我的问题很简单。如何像脚本一样在 C# 中使用回调函数?更准确地说,在
的第三个参数中执行此操作的正确语法是什么
public void FuncWithCallback(int param, int param2, Func callback)
会变成这样吗?
public void FuncWithCallback(int param, int param2, Func(x, y) callback)
// beep! error!
如果有多种选择,请尽可能多的告诉我。我准备好学习了:D.
您可以使用泛型和内置委托:
public void FuncWithCallback(int param, int param2, Action<int, int> callback)
Func is a delegate that can take parameters and return something. Action returns void and can take parameters. You can also declare your own delegate 类型,如果你想有更明确的命名。
// Action
delegate void MyDelegate();
// Action<int, int>
delegate void MyDelegate2(int param1, int param2);
// Func<string>
delegate string MyDelegate3();
// Func<int, int, string>
delegate string MyDelegate4(int param1, int param2);
以下是您可以在 C# 中使用回调函数的方法
选项 1
public static void FunctionWithCallBack(string a, string b, Func<string,string,string> callBackFunc)
{
string firstArg = a;
string secondArg = b;
var result = callBackFunc(firstArg, secondArg);
}
public static string CallBackFunctionMethod(string a, string b)
{
return a + " " + b;
}
CallBackFunction.FunctionWithCallBack("Aslam", "Shaikh", CallBackFunction.CallBackFunctionMethod);
选项 2
CallBackFunction.FunctionWithCallBack("Aslam", "Shaikh", (x, y) => x + " " + y );
如果您有任何问题,请告诉我
脚本示例。
function TakeCallback(param, param2, callback) {
var a = param;
var b = param2;
callback(a, b);
}
.... some context ...
TakeCallback("A", "B", function(one, two) {
var scopeA = one;
var scopeB = two;
});
C#
public void FuncWithCallback(int param, int param2, Func callback)
{
int myScope = param;
int myScope2 = param2;
callback(myScope, myScope2);
}
.... some context ....
.
.
FuncWithCallBack(10, 100, (x, y) => {
int AnotherScope = x;
int AnotherScope2 = y;
});
.
.
问题
我的问题很简单。如何像脚本一样在 C# 中使用回调函数?更准确地说,在
的第三个参数中执行此操作的正确语法是什么public void FuncWithCallback(int param, int param2, Func callback)
会变成这样吗?
public void FuncWithCallback(int param, int param2, Func(x, y) callback)
// beep! error!
如果有多种选择,请尽可能多的告诉我。我准备好学习了:D.
您可以使用泛型和内置委托:
public void FuncWithCallback(int param, int param2, Action<int, int> callback)
Func is a delegate that can take parameters and return something. Action returns void and can take parameters. You can also declare your own delegate 类型,如果你想有更明确的命名。
// Action
delegate void MyDelegate();
// Action<int, int>
delegate void MyDelegate2(int param1, int param2);
// Func<string>
delegate string MyDelegate3();
// Func<int, int, string>
delegate string MyDelegate4(int param1, int param2);
以下是您可以在 C# 中使用回调函数的方法
选项 1
public static void FunctionWithCallBack(string a, string b, Func<string,string,string> callBackFunc)
{
string firstArg = a;
string secondArg = b;
var result = callBackFunc(firstArg, secondArg);
}
public static string CallBackFunctionMethod(string a, string b)
{
return a + " " + b;
}
CallBackFunction.FunctionWithCallBack("Aslam", "Shaikh", CallBackFunction.CallBackFunctionMethod);
选项 2
CallBackFunction.FunctionWithCallBack("Aslam", "Shaikh", (x, y) => x + " " + y );
如果您有任何问题,请告诉我