Entwickler-Ecke
WinForms - Tracking von Variablen
C#Newbie - Sa 22.06.19 19:40
Titel: Tracking von Variablen
Hey Leute,
ich möchte den Wertevelauf einer/mehrer boolscher Variablen in einer Windos-Form möglichst anschaulich aufzeichnen/darstellen. Was für Möglichkeiten/Klassen usw. gibt es hierfür in C#? In diversen Dokus habe ichdazu nichts finden können. Vielen Dank für eure schnelle Unterstützung!
Viele Grüße
Palladin007 - So 23.06.19 01:13
Dazu gibt's nichts Fertiges.
Du hast zwei Möglichkeiten:
1. In jeder Property einzeln loggen
2. Eine eigene Klasse schreiben, die soetwas erlaubt
Variante 1:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| private bool _value1; private bool _value2;
public bool Value1 { get => _value1; set { LogValueChange(nameof(Value1), _value1, value);
_value1 = value; } } public bool Value2 { get => _value2; set { LogValueChange(nameof(Value2), _value2, value);
_value2 = value; } }
private void LogValueChange(string propertyName, bool oldValue, bool newValue) { } |
Variante 2:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| public class ValueTracker { private readonly Dictionary<string, object> _propertyValues;
public T GetValue(string propertyName) { return (T)_propertyValues.GetOrAdd(propertyName, default(T)); } public void SetValue<T>(string propertyName, T value) { LogValueChange(propertyName, GetValue<T>(propertyName), value);
_propertyValues[propertyName] = value; }
private void LogValueChange(string propertyName, bool oldValue, bool newValue) { } }
public class MyClass { private readonly ValueTracker _valueTracker;
public bool Value1 { get => _valueTracker.GetValue<bool>(nameof(Value1)); set => _valueTracker.SetValue(nameof(Value1), value); } public bool Value2 { get => _valueTracker.GetValue<bool>(nameof(Value2)); set => _valueTracker.SetValue(nameof(Value2), value); } } |
Das als sehr rudimentäre Beispiele
Letzteres lohnt sich besonders bei WPF, da sich die nötige Grundlage für das DataBinding verallgemeinern lässt.
C#Newbie - So 23.06.19 10:20
Alles klar...schon mal vielen Dank!Habe in der C#-Doku jetzt noch die Charts gefunden...(eine) Line-Chart(s) wäre denke ich auch eine gute Möglichkeit, mehrere Variablenverläufe anschaulich darzustellen? Danke!
Palladin007 - So 23.06.19 13:07
Wie Du das darstellst musst Du wissen.
Einfache bool-Werte in einem Chart dürften aber eher öde aussehen, die müsstest Du also aufbereiten, wie z.B. indem Du Gruppen von Werten zusammen zäglst.
Oder Du machst ein simples Log daraus
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!