(我对编程有点陌生,所以如果这没意义,那就这么说吧
让我们说一个方法接受一个void作为参数。例如:
method(anotherMethod);
我想在方括号内写空格,而不是在空格内写名字而不是
void theVoid() {
doSomethingHere;
}
然后称呼它
method(theVoid());
我想做
method({ doSomethingHere; })
可以直接这样做吗?
答案 0 :(得分:0)
您要尝试做的事情叫做“ lambda”,它是匿名函数 这是该文档。 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions
您的方法将需要传递一个Delegate(如果不返回任何内容,则Action应该可以) https://docs.microsoft.com/en-us/dotnet/api/system.action-1?view=netcore-2.2
Method(TheVoid()); // does not compile
Method(TheVoid); // compiles
using System;
public class Example
{
public void Method(Action func)
{
func();
}
public void TheVoid()
{
Console.WriteLine("In example.TheVoid");
}
}
public class Program
{
public static void TheVoid()
{
Console.WriteLine("In TheVoid");
}
public static void Main()
{
var example = new Example();
example.Method(example.TheVoid);
example.Method(() => {
Console.WriteLine("In lambda");
});
example.Method(TheVoid);
}
}
您尝试做的事的例子