Category Archives: C#
Aus einer anderen Klasse, aus einem anderen Thread in MainWindow schreiben
Möchte man aus einer anderen Klasse, aus einem anderen Thread etwas in die Mainklasse Steuerelemente schreiben, stößt man auf 2 Probleme: 1. Man kann aus Thread 2 nicht in Thread 1 schreiben 2. Man kann nicht, ohne ein Objekt angelegt zu haben nicht in die Steuerelemente schreiben. Abhilfe schafft ein kleiner Trick. MainWindow.cs:
1 2 3 4 5 6 |
internal static MainWindow main; internal object Status { get { return lstInfo.Items.CurrentItem; } set { Dispatcher.Invoke(new Action(() => { lstInfo.Items.Add(value); })); } } |
1 2 3 4 5 |
public MainWindow() { InitializeComponent(); main = this; } |
[…]
Extension Method Time zu Decimal und zurück
wiederum aufbauen auf den letzten Beitrag möchte ich hier ein Snippet vorstellen, mit dem man Zeit in Decimal und Decimal in Zeit umwandeln kann. Beispiel 12:45 -> 12.75 oder eben 12.75 -> 12:45
ExtensionMethods – ToInt
Im vorherigen Beitrag habe ich etwas zu der Extension Method ToString erklärt. ToInt() gibt es von Haus aus nicht. Aber das ist nicht schlimm, denn diese können wir uns selber basteln:
ToString
Möchte man einen Wert in String konvertieren, gibt es neben Convert.ToString(…) auch einfach .ToString(). Die 2. Möglichkeit ist weit mächtiger als dass diese einfach nur konvertieren kann. Damit lassen sich Datumsformate individuell darstellen, zahlen Runden usw. Mal ein paar Beispiele:
Datum nach darauffolgenden Tagen gruppieren
Ehrlich gesagt habe ich etwas gebraucht um den Titel richtig zu wählen. Aber ich möchte einmal aufzeigen, welches Szenario ich meine: Man hat eine Collection mit folgenden Datumelementen: 31.12.2014 01.01.2015 02.01.2015 16.02.2015 19.02.2015 20.02.2015 und möchte sie so sortieren: Von – Bis 31.12.2014 02.01.2015 16.02.2015 16.02.2015 19.02.2015 20.02.2015
ADODB Recordset to Arraylist
Ich weiß, ADODB ist veraltet und sollte nicht verwendet werden. Wer jedoch doch damit arbeiten muss, kann hier mal weiter lesen.
generische Listen / Collection
Zwar braucht die Dictionary<T, K> weniger Zeit beim hinzufügen/ löschen von Werten, braucht die SortedList doch weniger Ramkapazitäten und ist im großen und ganzen schneller. Deutlich langsamer ist die Hashtable und SortedDictionary.
Delegaten und Events
Delegaten sind in C# aufgebaut wie normale Methoden, jedoch besitzen sie keinen Code der ausgeführt wird, sondern weisen lediglich auf eine Methode mit Code hin. Das bedeutet, dass die Delegaten genau so wie Methoden einen Zugriffsmodifikator (private, public ), einen Rückgabe wert und Parameter haben. Die Parameter müssen aber in der Anzahl und Datentyp den […]
Kommentare und Regionen
Gewöhnlich verwendet man Kommentare zweierlei Weise. Zum einen kommentiert man einen Code aus, wenn man sich eine Änderung gemacht hat, aber immer die Option haben möchte es rückgängig machen zu können, zum anderen eben um z.B. eine bestimmte Funktion mit eigenen Worten zu beschreiben, damit ein anderer Entwickler sich schnell damit zurecht finden. Andererseits sei […]
generische Klassen
Mit generischen Klassen kann man Datentyp unabhängigen Aufbau einer Klasse erreichen. Das bedeutet, man kann dann ein Objekt der Klasse erzeugen und sagen, dass die Methoden dort eben mit diesen Datentyp arbeiten soll, dem wir dem Objekt übergeben. Auch eine dort deklarierte Variable ist eben der Typ, der übergeben wurde. Dabei arbeitet man mit einem […]
Login