Я читал некоторую документацию по MSDN относительно do и не имею в виду, должно ли что-то быть реализовано как свойство или как метод. Я столкнулся с одним правилом, в частности, что у меня есть вопрос.
Если "Операция возвращает массив" использует метод (вместо свойства).
Страница находится здесь: Выбор между свойствами и методами
Используйте метод, в котором операция возвращает массив, потому что для сохранения внутреннего массива вам нужно будет вернуться глубокая копия массива, а не ссылка на массив, используемый имущество. Этот факт в сочетании с тем, что разработчики используют свойства, как если бы они были полями, могут привести к очень неэффективному код.
Я понимаю, что метод get свойства вернет ссылку на массив, что позволит изменять массив, даже если его нет. В примере, который они приводят, они делают глубокую копию массива каждый раз при доступе к ресурсу, я думаю, чтобы избежать возможности этого, и это, в свою очередь, очень неэффективно.
Это не будет неэффективно, если свойство просто вернет ссылку и не выполнит все копии, верно? А также использование метода вместо свойства не будет автоматически защищать список от изменения. Это почти тот же сценарий, вам все равно нужна глубокая копия.
Использует свойство и просто возвращает ссылку на массив всегда плохой практике? Что делать, если вы хотите, чтобы вызывающий абонент мог изменять массив, или вас не волнует, изменяют ли они его? Это все еще плохо и почему, и если да, то каков был бы правильный способ разрешить вызывающему абоненту изменять?