Заметим, что координаты точки x, y (в простейшем случае целочисленные), которые используются для определения ее положения, являются атрибутами объекта или полями структуры.
Операция Point является функцией инициализации объекта и называется конструктором. Обратите внимание, что унаследованный от C++ указатель this представляет собой ссылку на текущий объект.
Наконец, операция (или, иначе, метод) MoveTo изменяет текущее местоположение точки на пару целочисленных координат (a,b).
Для использования объекта-структуры необходимо проинициализировать объект-значение в стеке посредством конструктора. Затем можно вызвать метод MoveTo:
Point p = new Point(3, 4); p.MoveTo(10, 20);
Мы познакомились с одним из основных видов объектов языка программирования C#, а именно, со структурами.
В предыдущем примере фрагмента программы на C# дважды фигурировал идентификатор Point. В связи с этим уместно вспомнить о проблеме коллизий переменных и возможных путях ее преодоления (в предыдущей части курса для решения этой задачи использовался формализм, известный под названием чисел де Брейна). В языке программирования SML переменные могут быть описаны либо глобально (это описание распространяется на весь текст программы), либо локально в теле функции (это описание распространяется на весь текст функции).
В языке программирования C#, где объекты имеют существенно более сложную структуру, вводится понятие области описания, под которой понимают фрагмент программы, к которому относится данное описание.
Объекты языка программирования C# могут быть описаны:
При этом принимаются следующие контекстные соглашения.
Во-первых, недопустимо двукратное описание в пределах данной области описания. Во-вторых, последовательность описаний является произвольной. Исключение составляют локальные переменные, которые необходимо описать до первого использования.