Като пример ще използвам класовете 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.
Редактиране: Търся някакво изпълнение на договора, което кара повикващите да предават обекти, които прилагат споменатия индексатор.
IDataReader
) - person SLaks   schedule 17.05.2013DoSomething
(Е, това би било поне един начин ) - person asawyer   schedule 17.05.2013