【发布时间】:2015-12-16 10:48:22
【问题描述】:
我的问题实际上是对this 的扩展,所以关于在返回之前测试属性是否为空的问题。我也有类似的情况:
public class MyClass
{
private readonly string _Name { get; set; }
private readonly IEnumerable<T> _Values { get; set; }
private IEnumerable<T> _MyProp { get; private set; }
public IEnumerable<T> MyProp
{
get
{
if(_MyProp == null)
{
this.SetProp();
}
return this._MyProp;
}
private set;
}
public MyClass(string Name, IEnumerable<T> Values)
{
this._Name = Name;
this._Values = Values;
}
private void SetProp()
{
// Business logic using Name and Values
this._MyProp = resultOfLogic;
}
}
已接受的对链接 SO 问题的回答提到这不是线程安全的方法。有人可以建议为什么它不是,如果有办法以线程安全的方式做到这一点?
【问题讨论】:
-
您给出的代码的第一个问题不是线程安全 - 这是堆栈溢出,因为您的
MyPropgetter 会调用自己...
标签: c# .net multithreading thread-safety