Как написать функцию, чтобы взять любой объект с оператором индекса
Я думаю, что спрашивал об этом в контексте C ++ (не могу найти его в моей истории вопросов !!) в прошлом, и решение было использовать функцию шаблона. Как шаблон C ++ разрешается во время компиляции, он работает. Но для C # это не так.
public Hashtable ConvertToHashtable<T>(T source) where T has an index operator
{
Hashtable table = new Hashtable();
table["apple"] = source["apple"];
return table;
}
В настоящее время одним из применений является преобразование результата в OleDbReader в хеш-таблицу, но я ожидаю, что скоро потребуется больше типов источников.