1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1196
1196
EMPFEHLEN
-
Guten Abend,
ich habe mich endlich durchgerungen VB6 an den Hut zu stecken und auf VB.NET umzusteigen. Soweit klappt alles mehr oder weniger gut. Da das rumrechnen mit Zeiten und rumcasten mit Strings nicht mehr ganz so einfach geht schreibe ich mir gerade eine eigene Zeit-Klasse, um diesen Komfort wieder genießen zu können.
Bis jetzt geht auch hier alles gut, nur bei einem Punkt komme ich nicht weiter.
Problem: Werte über ein "=" zum Beispiel mit einem String zuweisen (Normale Konstruktoren habe ich schon)
Beispiel:
Das parsen ist hier nicht die Problemstellung, das kriege ich selbst hin, aber wie kann ich nun meiner Klasse beibringen, dass den String parst und damit die Werte übernimmt.Code :1 2 3
Dim ZeitString as String, myZeit as myZeitKlasse 'evtl auch ´: myZeit as new myzeitKlasse //wenn es nicht anders geht ZeitString = "00:10:00" myZeit = Zeitstring 'Das soll nun myZeit initialisiert werden oder zumindest die Werte zuwiesen werden, also den ZeitString parsen
Habe schon versucht den = Operator zu überladen und den ersten Input ByRef zu überschreiben, das geht aber leider nicht. Also: Public Shared Operator =(ByRef myTime as myZeitKlasse, ByVal ZeitString as String)..
-
Ich würde
bevorzugen.Code vbnet:1
Dim myZeit as new myzeitKlasse("00:10:00")
Du kannst aber auch den Narrowing-Cast-Operator für String nach myZeitKlasse definieren:
Jetzt kannst du schreiben (falls Option Explicit = Off):Code vbnet:1 2 3 4 5 6 7 8 9
Public Class Test Public Sub New(ByVal ZeitString As String) ' jetzt was tun End Sub Public Shared Narrowing Operator CType(ByVal ZeitString As String) As Test Return New Test(ZeitString) End Operator End Class
Aber ich vermute dass du dir viel zu viel Arbeit machst für Dinge, die .Net bereits kann!Code vbnet:1
Dim t As Test = "Ein Text."
Code vbnet:1
Dim d As Date = CDate("00:10:00") ' ergibt 1. Januar im Jahr 1 mit Uhrzeit 00:10:00
Geändert von Shakie (02.05.10 um 15:17 Uhr)
-
Genau das habe ich gesucht, tausend Dank!Public Shared Narrowing Operator CType(ByVal ZeitString As String) As Test
Die Motivation zur Erstellung einer Time-Klasse war, dass ich ohne großes Casten und Funktionswirrwarr, Zeiten addieren und subtrahieren kann. Wenn man ich .net zwei Dates voneinander abzieht kommt z.B. ein Timespan raus, den man dann wieder in ein Date umrechnen müsste.
So kann ich jetzt einfach wie in VB6 Zeit1 = Zeit2 - Zeit3 machen
Außerdem kann ich mich so bisschen in .net einarbeiten.
-
02.05.10 21:22 #4
- Registriert seit
- Aug 2001
- Ort
- Österreich, Stmk, Graz
- Beiträge
- 2.783
Du könntest auch einfach nur mit TimeSpan arbeiten.
With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
Aaron Satie
Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
Captain Jean-Luc Picard, Stardate ~41294.5
Tutorials.de chattet. Hier gibts auch .net Support ^^
Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de
(moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions
-
Ein TimeSpan ist aber die logischere Einheit als ein Datum. Denn was soll denn "1. Mai 2010 minus 1. Februar 2010" sein, wenn nicht ein Zeitintervall?
EDIT: Für den Unterschied zwischen Narrowing und Widening siehe MSDN hier.Geändert von Shakie (19.05.10 um 23:52 Uhr)
Ähnliche Themen
-
Objekte initialisieren
Von starbuck86 im Forum Java GrundlagenAntworten: 3Letzter Beitrag: 21.10.08, 17:15 -
GMap neu initialisieren
Von schlumsch im Forum JavaAntworten: 0Letzter Beitrag: 11.09.08, 10:36 -
Objekt neu initialisieren
Von Da_Chris im Forum PHPAntworten: 8Letzter Beitrag: 04.06.08, 12:39 -
Array initialisieren
Von LukeS im Forum C/C++Antworten: 7Letzter Beitrag: 05.12.06, 08:46 -
PopUp initialisieren
Von Stiff im Forum PHPAntworten: 4Letzter Beitrag: 16.06.06, 14:08





Zitieren

Login




