C # получить и установить методы против перегрузки метода: что лучше? - PullRequest
0 голосов
/ 11 мая 2018

Я могу сделать как:

{
    void SetAnything(para, para, para) {...}
    int GetAnything(para, para) {...}
}

.. или я могу сделать как:

{
    int Anything(para, para, para) {...}
    int Anything(para, para) {...}
}

Я должен решить, по какому пути я иду, поэтому я спрашиваю вас:

Каков предпочтительный путь между этими двумя подходами и почему?


EDIT:

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

{
    void SetBudget(department, year, decimal value) {...}
    decimal GetBudget(department, year) {...}
}

.. или я могу сделать как:

{
    decimal Budget(department, year, decimal value) {...}
    decimal Budget(department, year) {...}
}

.. или даже:

{
    void Budget(department, year, decimal value) {...}
    decimal Budget(department, year) {...}
}

Все еще предпочтительнее с префиксом Set / Get?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Очевидно, что первый подход верен, а второй обескуражен .

Если вы ищете способ определения пользовательских методов получения и установки, именование должно быть:

Get[variable name]
Set[variable name]

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

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

0 голосов
/ 11 мая 2018

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

Post Edit


Тем не менее, факт остается фактом: «перегрузки» фактически достигают двух отдельных целей;один устанавливает, а другой получает.Это не будет проблемой, если вы используете для этого данную конструкцию;свойства.Но поскольку вы на самом деле перегружаете метод, это не типично.

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