Я пытаюсь разработать некоторые асинхронные методы для моего личного проекта и ищу справочную информацию для этого.
Я скачал исходный код .NET , чтобы более внимательно взглянуть на биты (с комментариями разработчиков, то, что Reflector не дает нам :-P)
Во всяком случае, во многих классах .NET я встречал следующий шаблон:
class SomeType
{
// ...
SomeClass m_Field;
// ...
SomeClass SomeMethod()
{
SomeClass localField = m_Field;
if (localField == null)
{
localField = new SomeClass();
m_Field = localField;
}
return localField;
}
}
Это заставило меня задуматься, в чем преимущество использования такого шаблона?
Насколько я знаю, приведенная выше схема хуже по производительности, чем приведенная ниже:
class SomeType
{
// ...
SomeClass m_Field;
// ...
SomeClass SomeMethod()
{
if (m_Field == null)
{
m_Field = new SomeClass();
}
return m_Field;
}
}
Или я что-то здесь упускаю?