Я пытаюсь разработать некоторые асинхронные методы для моего личного проекта, и я изучаю рамки для справки.В чем преимущество определения полей объектов для локальных переменных?
Я скачал .NET source code более внимательно взглянуть на биты и болты (с комментариями разработчиков, то, что отражатель не дает нам :-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;
}
}
Или я что-то пропустил?
Можете ли вы дать нам конкретный пример? Какой тип вы видели для SomeClass? Это какая-то коллекция? –