Доброго времени суток!
Имеется такой класс:
public static class SomeStaticClass
{
private static List<MyClass> mList = null;
public static List<MyClass> MyClassList
{
get
{
if (mList == null)
mList = GetList();
return mList;
}
}
private static List<MyClass> GetList()
{
List<MyClass> list = new List<MyClass>();
// list.Add
return list;
}
}
Приватная переменная используется только в свойстве и нигде больше в классе не встречается, вся работа идет через свойство.
Иногда возникает ситуация, когда лист не заполнен, но уже создан.
Ставлю брейкпоинт на if, запускаю приложение — вижу, что mList уже не null, но не содержит ни одного элемента (в GetList гарантированно добавляются данные).
Останавливаю приложение, запускаю по-новой — та же история. Такое поведение стабильно повторяется. Но стоит сделать ребилд солюшена — все опять встает на свои места.
Баг может не проявляться несколько дней, потом опять проявиться и так до ребилда.
Как такое может происходить, я вообще не представляю.
VS2010, Fw4.
Проект, благо, пока только в разработке, но если подобный прикол случится в продакшене — это ж ппц ))
Может, кто сталкивался с подобным? Какие-нибудь идеи?..
Спасибо за внимание!