Должно ли имя метода Get включать имя параметров? - PullRequest
6 голосов
/ 30 мая 2011

Извиняюсь, если об этом спрашивали раньше, и трудно представить, что это не так, но у него нет очевидной ассоциации ключевых слов, поэтому его сложно проверить.

Если у меня есть класс C # спара стандартных методов, таких как GetByCode(string code) и GetByCodeAndResourceType(string code, string resourceType), стоит ли просто переименовать их в перегруженные Get(...), поскольку они различаются списком параметров?

Очевидно, что могут быть сценарии, в которых такие жеПодпись метода может понадобиться для разных целей, но кроме этого я не вижу необходимости в отдельных именах методов, пока есть комментарии для intellisense.

Мне интересно знать, что кто-то думаетплюсы и минусы.

Ответы [ 3 ]

6 голосов
/ 30 мая 2011

Если они оба делают одно и то же (или возвращают одно и то же значение), но принимают разные входные данные, то было бы лучше дифференцировать их, перегружая параметры. Если есть разница в том, что они делают или возвращают, я бы использовал разные имена.

Другой причиной различий в именах может быть производительность или другая неочевидная характеристика (например, одна перегрузка намного медленнее другой). Это может быть прописано в документах, но предоставление разных имен привлекает к этому больше внимания.

3 голосов
/ 30 мая 2011

Я думаю, нужно понимать, что метод делает по своей подписи.Сигнатура метода состоит из его имени, возвращаемого типа и параметров.Таким образом, повторение любого из этих компонентов в имени (например, GetByName(string name) или List<string> GetNames*List*(..)) полностью избыточно.

3 голосов
/ 30 мая 2011

Мы склонны использовать слово Find вместо Get, и да, мы используем имя параметра в имени метода.

Как вы указали, будут случаи, когда типы параметров не предоставляют уникальную подпись.Вот почему мы выбрали длинные имена, потому что они согласуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...