Hej ;-)
załóżmy, że mamy funkcję licz();
private void licz(){
double zmienna1;
double zmienna2;
double zmienna3;
double zmienna4;
int zmienna10;
zmienna1=5.12;
zmienna2=Convert.ToDouble(textbox1.text); // załóżmy, że wartość ta wynosi 123/456
zmienna3=zmienna22.14;
zmienna4=Math.PIzmienna2;
}
Teraz chciałbym aby wszysktie zmienne typu double w funkcji licz(); były wyświetlanie (np. w messageboxie), ale chciałbym aby wyświetlana była nazwa zmiennej double (np. zmienna1, zmienna2).. oraz ich wartość
czyli np. messagebox.show("zmienna1=5.12\n"+"zmienna2=123.456\n")
Znalazłem coś takiego:
http://www.dotnetperls.com/reflection-field
Tylko tam jest tworzona klasa ReflectionTest, a ja chchciałbym, aby wszystkie zmienne typu double w funkcji licz() były wyświetlane..
Coś takiego jak debugger, ale dla osoby, która nie ma zainstalowanego środowiska VisualStudio..
Ma ktoś jakiś pomysł na to?
Mógłbym 'ręcznie' to zrobić, ale mam dużo zmiennych i myślę, że jest jakiś szybszy/automatyczny sposób na to
Myślę nad czymś takim (bazując na artykule, który znalazłem),, tylko mam problem ze składnią **foreach **;-)
foreach (var field in EVERY DOUBLE IN licz() )
{
string name = field.Name; // Get string name
object temp = field.GetValue(null); // Get value
if (temp is int) // See if it is an integer.
{
int value = (int)temp;
Console.Write(name);
Console.Write(" (int) = ");
Console.WriteLine(value);
}
else if (temp is string) // See if it is a string.
{
string value = temp as string;
Console.Write(name);
Console.Write(" (string) = ");
Console.WriteLine(value);
}
}