Страницы

Поиск по вопросам

понедельник, 25 февраля 2019 г.

Целесообразность создания экземпляров Point при задании позиции

Здравствуйте! Данный вопрос касательно оптимальности.
Каким способом из двух, при программном создании элемента управления в WinForms, лучше задавать координаты?
1) element.Location = new Point(x, y); 2) element.Location.X = x; element.Location.Y = y;
Целесообразно ли инициализировать экземпляр Point (хотя занимает меньше места и выглядит красивее)?


Ответ

2) element.Location.X = x; element.Location.Y = y;
Этот вариант не рабочий. В Location можно записать Point целиком, а доступ к Location.X и Location.Y только для чтения, т.к. Location свойство а не переменная или поле, о чем студия предупреждает еще до компиляции.
Причина довольно простая - структуры в .NET относятся к типам значениям (value types), следовательно свойство при обращении к нему предоставляет копию значения Point и вносить в нее изменения не имеет ни какого смысла.

Комментариев нет:

Отправить комментарий