Как узнать, реализует ли объект индекс?? Мне нужно разделить логику для DataRow и IDataReader, но они не имеют никакого интерфейса.Вопрос об индексаторах и/или генериках
Я пробовал также с дженериками, но не знаю, какое ограничение я должен поставить на предложение where.
public class Indexer {
// myObject should be a DataRow or a IDataReader
private object myObject;
public object MyObject {
get { return myObject; }
set { myObject = value; }
}
// won't compile, myObject has no indexer
public object this[int index] {
get { return myObject[index]; }
set { myObject[index] = value; }
}
public Indexer(object myObject) {
this.myObject = myObject;
}
}
public class Caller {
void Call() {
DataRow row = null;
IDataReader reader = null;
var ind1 = new Indexer(row);
var ind2 = new Indexer(reader);
var val1 = ind1[0];
var val2 = ind1[0];
}
}
Но я не могу заставить DataRow реализовать свой интерфейс –
См. Обновленный ответ. –
i did not downvote it, FYI, извините –