Class Function within Parameter
本问题已经有最佳答案,请猛点这里访问。
我可能在这里有一个脑残,我可能在这里,但是有点难说出我的问题,所以我有一些问题要寻求帮助。
本质上,在Java中,你可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // 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表达式来完成,但是我不能,因为我的生活似乎能理解它。感谢您的帮助。
我不能百分之百地肯定这是你想要实现的,但你可以这样做。用
1 2 3 4 |
像这样使用:
1 2 3 4 5 6 | var test = new Test { random = () => Console.WriteLine("Howdy") }; test.random(); |
号
在这种情况下,委托用于不带参数且没有返回的方法。如果需要参数,可以使用
1 | public Action<int> random { get; set; } |
或者如果您想要返回一个值,那么您必须使用
1 | public Func<int> random { get; set; } |
。