Как работает IConvertible
У меня есть следующий код, который я получил из Интернета. Я не уверен насчет использования IConvertible
, MSDN говорит:
"Этот интерфейс предоставляет методы для преобразования значения экземпляра реализующего типа в общеязыковой тип среды выполнения, который имеет эквивалентное значение".
Это значит, что я могу назначить что угодно IConvertible
и при использовании он преобразует его в тип реализации?
Например, в примере ниже я передаю параметры в виде пары ключ-значение, где ключ string
и значение IConvertible
,
SqlParameter object = new SqlParameter(param.Key, param.Value)
SqlParameter object
принимает ключ как string
и значение зависит от типа, объявленного в таблице или хранимой процедуре. Как это работает здесь?
private SqlCommand GetCommand(string procedureName,
IEnumerable<KeyValuePair<string, IConvertible>> parameters)
{
foreach (var param in parameters)
{
command.Parameters.Add(new SqlParameter(param.Key, param.Value));
}
}