Próbuję utworzyć funkcję, która może zwrócić pole z jego obiektu.Pobierz pole według nazwy
Oto, co mam do tej pory.
public class Base
{
public string thing = "Thing";
public T GetAttribute<T>(string _name)
{
return (T)typeof(T).GetProperty(_name).GetValue(this, null);
}
}
Co bym najlepiej jak to nazwać:
string thingy = GetAttribute<string>("thing");
ale mam wrażenie, mam zły koniec kija podczas czytania na to, bo wciąż otrzymuję zerowe wyjątki referencyjnych.
użyć następującej odpowiedzi from [here] (http://stackoverflow.com/questions/1196991/get-property-value- from-string-using-reflection-in-c-sharp) –
Należy zauważyć, że w języku C# termin "atrybut" ma konkretne znaczenie: jest to część metadanych, które można dołączyć do klas lub metod, między innymi. Na tym nie polega twoje pytanie - prawidłowe warunki będą takie, że używasz "refleksji", aby uzyskać wartość "pola" lub "własności". –