Один аргумент для выбора методов вместо свойств - это когда будет какой-либо код, который что-то делает. Если он просто возвращает какое-то значение внутреннего поля, тогда используйте свойство. Если у него есть какая-то логика внутри или какой-либо расчет использует метод. Это проясняет клиенту кода, что при вызове этого метода что-то происходит.
Я думаю, что я прочитал в CLR через CSharp , что Microsoft сожалеет о том, что DateTime.Now
делает свойство вместо метода. Он возвращает новое значение каждый раз, когда вы вызываете его. Это должен быть метод, а не свойство.