Если вы используете .NET 3.5 или более раннюю версию, вы можете использовать Обнуляемые типы .
public int Sum(int valueA, int valueB, int? valueC)
{
int sum = valueA + valueB;
if (valueC.HasValue)
{
sum += valueC.Value;
}
return sum;
}
Звонки будут:
int answer1 = Sum(1, 2, 3); // = 6
int answer2 = Sum(1, 2, null); // = 3
Конечно, классический способ сделать это - использовать перегрузки метода:
public int Sum(int valueA, int valueB)
{
int sum = valueA + valueB;
return sum;
}
public int Sum(int valueA, int valueB, int valueC)
{
int sum = valueA + valueB + valueC;
return sum;
}
int answer1 = Sum(1, 2);
int answer2 = Sum(1, 2, 3);
Если вы хотите использовать string
, а также int
, либо перейдите на .NET4, либо создайте другую пару перегруженных методов:
public int Sum(string valueA, string valueB)
{
// Convert the strings to int and call the previous code
// You will need to cope with the case when the strings don't represent numbers
}
public int Sum(string valueA, string valueB, string valueC)
{
...
}
Если вы хотите справиться со смешанными string
и int
, вам понадобится еще больше перегрузок - что, вероятно, излишне.