No więc posiadam coś takiego:
object wskaznik =new list<jakas nieznan="nieznan" mi="mi" klasa="klasa">();
czy można teraz , nie znając klasy wewnątrz < > odczytać liczbę elementów listy i pobrać jakiś element o indexie x ?
No więc posiadam coś takiego:
object wskaznik =new list<jakas nieznan="nieznan" mi="mi" klasa="klasa">();
czy można teraz , nie znając klasy wewnątrz < > odczytać liczbę elementów listy i pobrać jakiś element o indexie x ?
Type typ = wskaznik.GetType();
int count = (int)typ.GetProperty("Count").GetValue(wskaznik, null);
object chuj = typ.GetProperty("Item").GetValue(wskaznik, new object[] { 0 });
Gdzie ostatnie 0 to indeks.
Ale mimo wszystko źle się do tego zabierasz, na pewno można to ładniej zrobić przy użyciu dziedziczenia, interfejsów i tego typu zabawek, a nie refleksji.
Dzięki Rev.pl .
prościej:
int liczba = ((IList)wskaznik).Count();
object element = ((IList)wskaznik)[x];
@up - te nawiasy przy Count raczej nie zadziałają, to właściwość, nie metoda.
Nie ma to jak potęga interfejsów :) Doskonały przykład wykorzystania.