C# с 27 непробельными символами - включает вызов.
Action a = null;
a = () => a();
a();
Общий стандарт - о побочных эффектах . Если, вызывая члена для получения значения, вы получаете только это значение, это свойство. Если есть побочные эффекты, вероятно, это должен быть метод.
Другими словами: свойства, даже если они не являются полями, должны вести себя очень похоже на поля. Это означает отсутствие побочных эффектов, малое время выполнения и исключение исключения.
В дополнение к сказанному Клетусом.
Это из msdn: «Рекомендации по использованию свойств» http://msdn.microsoft.com/en-us/library/ bzwdh01d (VS.71) .aspx См. Раздел «Свойства и методы»:
Я бы взглянул на это сообщение SO о свойствах и методах.
В нем упоминается рассмотрение Выбор между свойствами и методами
хороший вопрос. Я не знаю лучших практик по этому поводу. На мой взгляд, это обычно вопрос здравого смысла.
Приличия связаны с самим объектом / классом и обычно описывают его. Лучшим примером являются элементы пользовательского интерфейса, Background, Color, IsEnabled.
Методы обычно представляют собой действия, которые объект / класс может выполнять и которые могут давать результаты. Лучший пример здесь - метод Show MessageBox. он выполняет действие и возвращает результат.
На фундаментальном уровне решение между выбором свойства или метода зависит от аргумента «имеет» или «делает». Если вам нужна информация об атрибутах или качестве, используйте свойства. Если это действие, то методы.
Но на практическом уровне может быть трудно реализовать его таким образом все время.
использовать свойство, когда какое-то свойство er .. работает быстро (например, ctrl.Color, ctrl.Text , ctrl.Width, DateTime.Now). но если это означает процесс, используйте метод (например, str.GetHash (), machine.GetFqdn (), file.GetMd5 ()). поэтому в файле md5 вы не сделаете его свойством
, это подчеркнет его больше всего , когда использовать метод :
Операция достаточно дорогая, чтобы но если это означает процесс, используйте метод (например, str.GetHash (), machine.GetFqdn (), file.GetMd5 ()). поэтому в файле md5 вы не сделаете его свойством
, это подчеркнет его больше всего , когда использовать метод :
Операция достаточно дорогая, чтобы но если это означает процесс, используйте метод (например, str.GetHash (), machine.GetFqdn (), file.GetMd5 ()). поэтому в файле md5 вы не сделаете его свойством
, это подчеркнет его больше всего , когда использовать метод :
Операция достаточно дорогая, чтобы вы хотите общаться с пользователем что им следует подумать о кешировании result.
обратите внимание, что .NET DateTime.Now, хотя он и быстр, и является свойством, его необходимо кэшировать, когда он вызывается несколько раз в вашей программе, даже рядом друг с другом. они решили сделать его свойством, свойство имеет ощущение актуальности в нем, в отличие от того, когда вы вызываете метод, в нем нет ощущения мгновенности / актуальности . поэтому вам нужно принять во внимание, что даже когда вы получаете значение и его необходимо кэшировать, но если это должно ощущаться мгновенно , непременно используйте свойство.
в конце концов, если что-то действительно быстрое и не кажется дорогостоящим, у него должна быть конструкция, которая может передать его быстродействие. Я думаю, что поэтому .NET привлекателен (или любой язык, имеющий конструкцию свойств), это не так.
Если говорить простыми словами, свойство описывает объект, а метод - это действие, которое объект может выполнять.
Для объекта, представляющего автомобиль, drive ()
будет методом, а color
будет свойством.