Ottenere variabile per nome in C #

C’è un modo per ottenere il valore di una variabile solo conoscendo il suo nome, in questo modo:

double temp = (double)MyClass.GetValue("VariableName"); 

Quando normalmente accedo alla variabile come questa

 double temp = MyClass.VariableName; 

Potresti usare la riflessione . Ad esempio se PropertyName è una proprietà pubblica su MyClass e si dispone di un’istanza di questa class è ansible:

 MyClass myClassInstance = ... double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null); 

Se è un campo pubblico:

 MyClass myClassInstance = ... double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance); 

Ovviamente dovresti essere consapevole che la riflessione non arriva gratis. Potrebbe esserci una penalizzazione delle prestazioni rispetto alla proprietà diretta / accesso al campo.

Dovrai usare la riflessione. Vedi http://msdn.microsoft.com/en-us/library/z919e8tw(v=vs.80).aspx per maggiori dettagli.