假设我想创建一个匿名的getter函数,该函数将返回成员变量foo的当前值。我可能会写:
Func<int> myFunction = delegate() { return foo; };
但是说我想要一个函数,该函数采用foo的值,将该值绑定到其闭包中,然后在每次调用时返回该值。我会写同样的东西:
Func<int> myFunction = delegate() { return foo; };
C#编译器如何区分差异?有什么方法可以更具体地询问您想要什么吗?
参考方案
匿名函数始终使用闭包。
无法仅捕获变量的值。
如果您不希望函数看到变量的更改,则可以制作一个单独的临时变量,然后在函数中使用它,
将谓词<T>转换为Func <T,bool> - c#我有一个包含成员Predicate的类,希望在Linq表达式中使用该类:using System.Linq; class MyClass { public bool DoAllHaveSomeProperty() { return m_instrumentList.All(m_filterExpression); } private IEnumerable&…
Java中的“ <<”运算符 - java最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…
在PHP中使用long int - php我正在尝试此方法,但无法存储较大的价值$var = rand(100000000000000,999999999999999); echo $var; // prints a 9 digit value(largest possible) 如何获得期望值? 参考方案 PHP整数通常为32位。其他软件包提供了更高精度的整数:http://php.net/man…
根据激活的Maven配置文件更新战争名称 - java在pom中,我有两个配置文件。测试1测试2现在,我希望根据激活的配置文件更改战争名称。预期结果激活test1配置文件后,战争名称应为prefix-test1.war。激活test1和test2时,战争名称应为prefix-test1-test2.war。如果没有激活任何配置文件,则战争名称应为prefix.war。我的POM文件....<?xml ve…
将对象转换为List <object> - c#我看过类似的问题,但没有什么合适的。我有一个碰巧包含列表的对象。我想把它变成我可以列举的东西。例如:object listObject; // contains a List<Something> List<object> list; list = listObject as List<object>; // list c…