Свойство неизвестного объекта - C#

Узнай цену своей работы

Формулировка задачи:

Как правильно написать такую функцию, чтобы при передаче туда любого объекта возвращалась длина этого объекта? Предполагается, что свойство Length у него гарантированно есть.
public static int GetLength(object a)
{
    return a.Length;
}
Можно, конечно, написать как-то так:
public static int GetLength(object a)
{
   if (a is int[]) return (a as int[]).Length;
   if (a is string) return (a as String).Length;
   return 0;
}
Но мне нужно универсальное решение, чтобы срабатывало даже при таком вызове:
GetLength(new {Length = 5, Width = 2});

Решение задачи: «Свойство неизвестного объекта»

textual
Листинг программы
int GetLength(object obj)
{
    return (int)obj.GetType().GetProperty("Length").GetValue(obj);
}

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы