Практическое руководство. Оптимизация кода с помощью операции "инкапсуляция поля"
Обновлен: Ноябрь 2007
В описании следующей процедуры объясняется, как из существующего поля создать свойство и затем обновить код, включив в него ссылки на новое свойство. Эта процедура используется для выполнения операции оптимизации, называемой Инкапсуляция поля.
Чтобы создать из поля свойство
Создайте консольное приложение, как описано в разделе "Пример".
Дополнительные сведения см. в разделе Создание консольных приложений (Visual C#).
В окне Редактор кода и текста расположите курсор в объявлении на имени поля, которое нужно инкапсулировать. В приведенном ниже примере расположите курсор на слове width:
public int width, height;
В меню Оптимизация выберите пункт Инкапсуляция поля.
Откроется Диалоговое окно "Инкапсуляция поля".
Кроме того, диалоговое окно Инкапсуляция поля можно открыть нажатием на клавиатуре сочетания клавиш CTRL+R, E.
Кроме того, можно щелкнуть правой кнопкой мыши курсор, выбрать пункт меню Оптимизация и затем щелкнутьИнкапсуляция поля, после чего откроется диалоговое окно Инкапсуляция поля.
Задайте параметры.
Нажмите клавишу ВВОД или кнопку ОК.
Если выбрать параметр Предварительный просмотр изменений ссылок, то откроется окно Предварительный просмотр изменений ссылок. Нажмите кнопку Применить.
В файле исходного кода отобразятся следующие коды методов доступа get и set:
public int Width { get { return width; } set { width = value; } }
Код метода Main также будет обновлен, и в нем появится имя нового свойства Width.
Square mySquare = new Square(); mySquare.Width = 110; mySquare.height = 150; // Output values for width and height. Console.WriteLine("width = {0}", mySquare.Width);
Пример
Для подготовки этого примера создайте консольное приложение с именем EncapsulateFieldExample и заменитеProgram следующим кодом. Дополнительные сведения см. в разделе Создание консольных приложений (Visual C#).
class Square
{
// Select the word 'width' then use Encapsulate Field.
public int width, height;
}
class MainClass
{
public static void Main()
{
Square mySquare = new Square();
mySquare.width = 110;
mySquare.height = 150;
// Output values for width and height.
Console.WriteLine("width = {0}", mySquare.width);
Console.WriteLine("height = {0}", mySquare.height);
}
}