Mas*_*low 8 c# lambda anonymous-methods
这合法吗?它是否包含隐藏的错误或缺陷?Visual Studio不会给出任何错误或警告,但ReSharper会:
/// <summary>
/// immutable tuple for two
/// </summary>
public class Pair<TValue1, TValue2> : Singleton<TValue1>
{
public TValue2 Value2 { get; private set; }
public Pair(TValue1 value1, TValue2 value2, Func<Pair<TValue1, TValue2>, String> toStringFunc)
: this(value1, value2, () => toStringFunc(this)) { } //Red light
}2> : Singleton<TValue1>
Run Code Online (Sandbox Code Playgroud)
我很确定我听说这是一个编译器错误,在下一个版本中得到修复.我只是用更简单的测试用例启动我的4.0 VM:
class Foo {
public Foo() : this(delegate { this.Bar(); }) { }
public Foo(Action foo) {}
public void Bar() {}
}
Run Code Online (Sandbox Code Playgroud)
适用于VS2008,但在VS2010中:
错误1关键字'this'在当前上下文中不可用