Я часто буду начинать с частных авто свойств, а затем рефакторинг, если это необходимо. Я проведу рефакторинг свойства со вспомогательным полем, а затем заменю вспомогательное поле «реальным» хранилищем, например Session или ViewState для приложения ASP.NET.
От:
private int[] Property { get; set; }
до
private int[] _property;
private int[] Property
{
get { return _property; }
set { _property = value; }
}
до
private int[] _property;
private int[] Property
{
get
{
if (_property == null)
{
_property = new int[8];
}
return _property;
}
set { _property = value; }
}
до
private int[] Property
{
get
{
if (ViewState["PropertyKey"] == null)
{
ViewState["PropertyKey"] = new int[8];
}
return (int[]) ViewState["PropertyKey"];
}
set { ViewState["PropertyKey"] = value; }
}
Конечно, я использую ReSharper, поэтому это занимает меньше времени, чем публикация.