gpt4 book ai didi

java - 参数中的类函数

转载 作者:行者123 更新时间:2023-11-30 07:51:03 25 4
gpt4 key购买 nike

我可能在这里犯了一个错误,而且我可能确实如此,但是很难用语言表达我的问题,所以我在寻求帮助时遇到了一些问题。

<小时/>

本质上,在 Java 中,您可以执行以下操作:

// create some generic class
public class Test {
public void random() {}
}

// other class
public class Test2 {
public Test2() {
someFunction(new Test() {
public void random() {
System.out.println("howdy");
}
});
}

private someFunction(Test t) {
t.random();
}
}

我希望将这个想法(修改类的内容,同时将其作为变量传递)转换为 C#。我知道它可以用 lambda 表达式来完成,但是我似乎无法弄清楚它。如有任何帮助,我们将不胜感激。

最佳答案

我不是 100% 确定这就是您想要实现的目标,但您可以这样做。将该属性替换为 Action delegate :

public class Test
{
public Action random { get; set; }
}

并像这样使用:

var test = new Test 
{
random = () => Console.WriteLine("Howdy")
};

test.random();

本例中的委托(delegate)适用于不带参数且无返回值的方法。如果您想要参数,您可以使用 Action 的通用版本。例如,如果您需要传递 int :

public Action<int> random { get; set; }

或者如果你想返回一个值,那么你必须使用 Func<> :

public Func<int> random { get; set; }

关于java - 参数中的类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33336587/

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