例如,我将使用 SqlDataReader 和 DataRow 类:它们都定义了以下索引器:
public object this[int columnIndex] { get; set; }
用作方法参数类型的最低公分母类型是什么,以便两者(以及实现相同索引器的任何其他类)都可以以相同的方式传递和使用,例如:
void DoSomething(??? indexedObject)
{
string foo = indexedObject[0].ToString();
// let's ignore the presence of ToString()
// for the purpose of this question
}
是object
吗?如果索引对象不是源自object
(我认为这是可能的,即使不太可能)怎么办。
如果重要的话,我的目标是 .NET 3.5。
编辑:我正在寻找一些导致调用者传递实现所述索引器的对象的合同执行。