相关疑难解决方法(0)

通过Lazy <T>或任何lambda表达式访问非静态成员

我有这个代码:

public class MyClass
{
    public int X { get; set; }
    public int Y { get; set; }

    private Lazy<int> lazyGetSum = new Lazy<int>(new Func<int>(() => X + Y));
    public int Sum{ get { return lazyGetSum.Value; } }

}
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

字段初始值设定项不能引用非静态字段,方法或属性.

我认为通过懒惰访问非静态成员是非常合理的,怎么做?

*编辑*

接受的答案完美地解决了这个问题,但是要看到问题的详细和深入 - 总是原因,你可以阅读Joh Skeet的答案.

.net c# .net-4.0 lazy-evaluation

47
推荐指数
2
解决办法
9288
查看次数

标签 统计

.net ×1

.net-4.0 ×1

c# ×1

lazy-evaluation ×1