VB6 Cast-Ausdruck

8

Was ist der Cast-Ausdruck, der dem VBype von CT.NET in Visual Basic 6 entspricht?

    
mirezus 20.11.2008, 21:39
quelle

6 Antworten

15

Je nach dem Typ, nach dem Sie suchen, gibt es eine Reihe von

%Vor%

Es hat auch implizites Casting, also können Sie myString = myInt

tun     
JohnFx 20.11.2008, 21:42
quelle
17

Einige wenige Poster scheinen die Frage falsch verstanden zu haben, also werde ich versuchen, die Dinge klarzustellen, indem ich die Frage neu formuliere und die richtigen Antworten zusammenfasse.

Problem

  

Ich möchte Daten eines Typs in einen anderen Typ umwandeln. In meinem VB.NET Code würde ich CType dazu verwenden. Wenn ich versuche, CType in VB6 zu verwenden, erhalte ich jedoch einen Fehler "Sub oder Funktion nicht definiert". Also, wie kann ich Umwandlungen in VB6 durchführen, wenn CType nicht funktioniert?

Lösung

Wie Sie vielleicht bemerkt haben, hat VB6 keine CType -Funktion wie VB.NET. Die anderen Konvertierungsfunktionen (diejenigen mit Namen, die mit C beginnen), die Sie möglicherweise in VB.NET-Code gefunden haben, wie CInt und CStr, sind jedoch in VB6 vorhanden, und Sie können sie zum Konvertieren verwenden Nicht-Objekttypen. Es gibt keine integrierte Funktion zum Konvertieren eines Objekts einer Klasse in ein Objekt einer anderen Klasse. Beachten Sie, dass VB6 im Gegensatz zu VB.NET keine Vererbung unterstützt. Eine Klasse in VB6 kann eine oder mehrere Schnittstellen implementieren, sie kann jedoch nicht von einer anderen Klasse erben. Wenn die Klasse eines Objekts jedoch mehr als eine Schnittstelle implementiert, können Sie mit der Anweisung Set ein Objekt auf eine der unterstützten Schnittstellen umwandeln (wie von Ant vorgeschlagen). Eine erweiterte Version des Codebeispiels von Ant wird im Folgenden bereitgestellt:

Beispiel: Darstellen einer Klasse auf eine der unterstützten Schnittstellen

%Vor%


Eingebaute Typumwandlungsfunktionen in VB6

Im Folgenden finden Sie eine vollständige Liste der integrierten Konvertierungsfunktionen in VB6, die direkt aus der VB6-Hilfedatei stammen.

  

CBool ​​

     

Gibt

zurück      

Boolean

     

Beschreibung

     

Konvertiere Ausdruck in Boolean.

     

Bereich für Ausdruck Argument:

     

Jeder gültige String oder numerische Ausdruck.   

CByte

     

Gibt

zurück      

Byte

     

Beschreibung

     

Konvertieren Sie Ausdruck in Byte.

     

Bereich für Ausdruck Argument:

     

0 bis 255   

CCur

     

Gibt

zurück      

Currency

     

Beschreibung

     

Konvertieren Sie Ausdruck in Währung.

     

Bereich für Ausdruck Argument:

     

-922,337,203,685,477,5808 bis 922,337,203,685,477,5807.   

CDate

     

Gibt

zurück      

Date

     

Beschreibung

     

Konvertieren Sie Ausdruck nach Datum.

     

Bereich für Ausdruck Argument:

     

Jeder gültige Datumsausdruck.   

CDbl

     

Gibt

zurück      

Double

     

Beschreibung

     

Wandeln Sie Ausdruck in Double um.

     

Bereich für Ausdruck Argument:

     

-1.79769313486232E308 zu   -4.94065645841247E-324 für negative Werte; 4.94065645841247E-324 bis 1.79769313486232E308 für positive Werte.   

CDec

     

Gibt

zurück      

Decimal

     

Beschreibung

     

Konvertiere Ausdruck in Dezimal.

     

Bereich für Ausdruck Argument:

     

+/- 79,228,162,514,264,337,593,543,950,335 für nullskalierte Zahlen, dh Zahlen ohne Nachkommastellen. Für Zahlen mit 28 Dezimalstellen ist der Bereich   +/- 7.9228162514264337593543950335. Die kleinste mögliche Zahl ungleich Null ist 0,00000000000000000000000000000001.   

CInt

     

Gibt

zurück      

Integer

     

Beschreibung

     

Konvertieren Sie Ausdruck in Long.

     

Bereich für Ausdruck Argument:

     

-32.768 bis 32.767; Brüche sind gerundet.   

CLng

     

Gibt

zurück      

Long

     

Beschreibung

     

Konvertieren Sie Ausdruck in Long.

     

Bereich für Ausdruck Argument:

     

-2,147,483,648 bis 2,147,483,647; Brüche sind gerundet.   

CSng

     

Gibt

zurück      

Single

     

Beschreibung

     

Konvertieren Sie Ausdruck in Single.

     

Bereich für Ausdruck Argument:

     

-3.402823E38 bis -1.401298E-45 für negative Werte; 1.401298E-45 bis 3.402823E38 für positive Werte.

     

CStr

     

Gibt

zurück      

String

     

Beschreibung

     

Konvertieren Sie Ausdruck in String.

     

Bereich für Ausdruck Argument:

     

Rückgabewerte für CStr hängen vom Ausdruckargument ab.

     

CVar

     

Gibt

zurück      

Variant

     

Beschreibung

     

Konvertieren Sie Ausdruck in Variant.

     

Bereich für Ausdruck Argument:

     

Gleicher Bereich wie Double für Numerik. Derselbe Bereich wie String für Nicht-Numerik.

    
Mike Spross 22.11.2008 05:23
quelle
4

Nehmen wir an, Sie haben ein Objekt von ChildClass (untergeordnet), das Sie in BaseClass umwandeln möchten. Sie tun dies:

%Vor%

Aufgrund der Art und Weise, wie VB6 die Art der Sicherheit beim Kompilieren behandelt, können Sie das ohne zusätzliche Syntax tun.

Hinweis: Angesichts der Tatsache, dass alle anderen CType erwähnt haben, habe ich die Frage vielleicht komplett missverstanden, und ich entschuldige mich, wenn das der Fall ist!

    
Ant 21.11.2008 12:48
quelle
2

Die bereits erwähnten Umwandlungen sind korrekt, aber wenn der Typ ein Objekt ist, dann müssen Sie "Set" in VB6 verwenden, wie zum Beispiel:

%Vor%

Das hängt natürlich von dem Typ ab, auf den Sie zugreifen. Fast alle Benutzerklassen sind Objekte sowie Collection, Dictionary und viele andere. Die eingebauten Typen wie long, integer, boolean usw. sind offensichtlich keine Objekte.

    
Ryan 20.11.2008 22:32
quelle
0

Ctype () Ich glaube. Die C * (CDate (), CStr () usw.) sind zum größten Teil Überbleibsel.

    
StingyJack 20.11.2008 21:40
quelle
0

Conversions sind überhaupt keine "Casts". Zum Beispiel versuchen:

%Vor%

Das Ergebnis ist -1, nicht 3. Dies liegt daran, dass es sich um Konvertierungs Funktionen handelt und nicht um Umwandlungen. Sprache ist wichtig!

    
Bob 20.01.2009 06:10
quelle

Tags und Links