C# Versionen Control

...komplette Frage anzeigen

3 Antworten

Dafür gibt es die Klasse System.Version.

Wenn du ein String hast, das aus Ziffern und bis zu 3 Punkten dazwischen besteht, kannst du daraus leicht eine Instanz von System.Version machen:

System.Version version = new System.Version(versionsstring);

Zwei Instanzen von System.Version kannst du ohne weiteres mit <, <= etc. vergleichen, um die korrekte Zuordnung der Bestandteile kümmert sich die Klasse.

(Übrigens würde ich die Dateiendung ".html" nur für html-Dateien verwenden; hier also eher "version.txt" oder noch besser "version.dat" - dann kommt keiner auf die Idee, diese Daten könnten zum normalen Lesen bestimmt sein.)

Antwort bewerten Vielen Dank für Deine Bewertung

Schau dir mal den Datentyp von result im debugging an, der ist String du musst also zuerst eine möglichkeit finden die Strings zu vergleichen sonst macht die Operation keinen Sinn.

Du kannst zB beide Strings als double Parsen und dann vergleich das geht aber nur mit Versionsnummer welche nicht mehr als einen Punkt haben.

Ansonsten musst du den String vergleich selbst implementieren, du kannst zB die Strings bei jedem "." trennen.

Danach hast du ein Array in denen nur Strings stehen welche einen Int repräsentieren, du kannst sie also in einen Int Convertieren und dann Prüfen welche Version aktueller ist zB:

1.0.2 ist älter als 1.1.0 du trennst also die beiden Zahlen an den Punkten auf und machst sie zu Integern, somit erhältst du:

1 >= 1

0 >= 1

2 >= 0

anhand der zweiten Aussage erkennst du jetzt dass 1.0.2 älter als 1.1.0 ist

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Drakensang22222
20.07.2016, 15:20

Danke für dein Kommentar aber es ging auf einen sehr viel einfacheren weg:)

0

ich würde für deine Angelegenheit ein double empfehlen.

und dann folgendes:
double.TryPrase(); //versucht aus einem String ein double zu erschaffen

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?