Что лучше, свойства с приватной переменной или автоматические свойства? - C#
Формулировка задачи:
Известно, что в классах свойства можно определить так:
А можно вообще вот так без использования переменной Я до этого в своих программах, которые писал сам, всегда использовал первый тип, потому что размышлял вот так: внутри класса я смогу по прежнему иметь прямой доступ к переменной val(как в методе
class MyClass { private int[] val; public int[] Val { set { val = value; } get { return val; } } public MyClass() { val = new int[100000000]; } public int SomeMethod() { int sum = 0; foreach (int v in val) { sum += v; } return sum; } }
val
:class MyClass2 { public int Val { get; set; } }
SomeMethod()
), а не обращаться через свойствоVal { get; set; }
(как во втором примере). И это по скорости лучше, так как свойство - это тот же метод. А вызов метода, который в свою очередь вызывает уже переменную - лишние процессорные инструкции, соответственно ниже производительность(хоть и выиграш в производительности в данном случае незначительный, но все же, если учесть, что внутри класса получение переменной через свойство может вызываться огромное количество раз...) А вот с недавнего времени хожу на одни курсы по C#, и у меня с тренером возникли немного споры по этому поводу... Многие меня упрекают, что я в классах понасоздавал лишние переменные вместо того, чтобы просто использовать автоматические свойства. Пожалуйста, помогите мне разобраться в чем я не прав...Решение задачи: «Что лучше, свойства с приватной переменной или автоматические свойства?»
textual
Листинг программы
+--------------------+-------+-------+-------+-------+-------+-------+ | | 4.0 | 4.0CP | 3.5 | 3.5CP | 3.0 | 2.0 | +--------------------+-------+-------+-------+-------+-------+-------+ | Поле структуры | 0.335 | 0.335 | 0.502 | 0.503 | 0.511 | 0.514 | | Свойство структуры | 0.335 | 0.335 | 1.176 | 1.172 | 1.171 | 1.172 | | Поле класса | 4.510 | 4.523 | 4.567 | 5.377 | 5.173 | 4.795 | | Свойство класса | 5.070 | 5.126 | 5.548 | 5.817 | 5.590 | 5.484 | +--------------------+-------+-------+-------+-------+-------+-------+
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д