Код: Выделить всё
public static TOut? NullableConvert(object source, Func converter) where TOut : struct
{
}
public static TOut NullableConvert(object source, Func converter) where TOut : class
{
}
Ошибка CS0111. Тип «DataHelpers» уже определяет элемент с именем
«NullableConvert» с теми же типами параметров
Однако, если я добавлю необязательный параметр для одного из методов, как показано ниже, то мне разрешено использовать эти перегрузки (обратите внимание, что объект x = null).
Код: Выделить всё
public static TOut? NullableConvert(object source, Func converter) where TOut : struct
{
}
public static TOut NullableConvert(object source, Func converter, object x = null) where TOut : class
{
}
Код: Выделить всё
long? x = DataHelpers.NullableConvert(DBNull.Value, Convert.ToInt64);
string y = DataHelpers.NullableConvert(DBNull.Value, Convert.ToString);
Как компилятор/среда выполнения могут разрешить перегрузку без необязательного параметра?
Почему я сразу получил ошибку, если методы можно разрешить?
Подробнее здесь: https://stackoverflow.com/questions/605 ... al-paramet