Вы можете использовать ключевое слово params .Поскольку у вас смешанные типы (int и string), у вас будет две опции:
Использовать объект []
public void DisplayComments(params object[] myVariableLengthParams)
Использовать строковый параметр после первых 4 параметров:
public void DisplayComments(int param1, int param2, int param3,
int param4, params string[] myVariableStringParams)
ИЛИ, вы можете использовать значения по умолчанию, если вы используете 4.0 (Это может быть не лучшим вариантом, если вы используете публичный API. Он может не согласоваться с ожиданиями, если значение по умолчанию изменится, в соответствии сКомментарий Даниэля Хилгарта ниже.)
public void DisplayComments(int param1, int param2, int param3,
int param4, string param5 = "")
Наконец, вы можете использовать перегрузки (однако кажется, что вариант params
может быть лучшим для вас).И это почти то же самое, что использование значений по умолчанию , если логика одинакова в обоих
public void DisplayComments(int param1, int param2, int param3, int param4)
{
DisplayComments(int param1, int param2, int param3, int param4, "");
}
public void DisplayComments(int param1, int param2, int param3, int param4,
string param5)
{
//Final overload that does the logic
}
, если логика не одинакова
public void DisplayComments(int param1, int param2, int param3, int param4)
{
//Logic for 4 param
}
public void DisplayComments(int param1, int param2, int param3, int param4,
string param5)
{
//Logic for 5 param
}
Вам разрешено иметь много методов с одинаковыми именами, если сигнатуры методов не одинаковы (одинаковый порядок, одинаковые типы, одинаковый тип возвращаемого значения)