编写一个void作为参数

时间:2019-06-17 20:38:27

标签: c# methods

(我对编程有点陌生,所以如果这没意义,那就这么说吧

让我们说一个方法接受一个void作为参数。例如:

method(anotherMethod);

我想在方括号内写空格,而不是在空格内写名字而不是

void theVoid() {
    doSomethingHere;
}

然后称呼它

method(theVoid());

我想做

method({ doSomethingHere; })

可以直接这样做吗?

1 个答案:

答案 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);
    }
}

您尝试做的事的例子