Hallo Wolfgang, thx, gute Erkl�rung.
Gr��e Oskar -----Urspr�ngliche Nachricht----- Von: Wolfgang Kluge [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 10. Juni 2004 22:29 An: [EMAIL PROTECTED] Betreff: AW: AW: [Vb.net] Directcast Hi Oskar, Chris, In VB werden die Indexer (fast) immer �ber eine Eigenschaft angesprochen. In diesem Fall "Chars". Dim strWhatEver As String = "help me" Dim c As Char = strWhatEver.Chars(0) Damit kann man auf jeden einzelnen Buchstaben des Strings zugreifen. Aber das hat ja eher weniger mit der Ursprungsfrage zu tun (obwohl diese vielleicht mit einem ungl�cklichen Beispiel daher kam *g*)? > DirectCast ("C"c, Char) DirectCast ist mit CType gut vergleichbar (auch wenn die beiden letztendlich nur wenig gemein haben). Wenn DirectCast verwendet werden kann, dann sollte es aus Performancegr�nden auch verwendet werden. Aber vorher noch zur Erkl�rung: Der Zusatz c hinter der Zeichenfolge gilt nur f�r einstellige Zeichenfolgen und gibt an, dass es sich hierbei um Char statt um String handelt (ich hasse diese Notation. Wer zum T... ist nur auf so eine Sche... gekommen *grrr*). Jedenfalls hast Du damit schon die Umwandlung vorgenommen (Dim x As Char = "C"c ist somit g�ltig). Also willst Du mit dieser Zeile ein Char als Char ansprechen - was ja an sich quatsch ist ;). Grunds�tzlich funktioniert das auch - nur ist es eben so, das Werttypen nicht gewandelt werden k�nnen (weil dazu zwingend eine Konvertierung n�tig ist - es sei denn man bleibt beim gleichen Datentyp was aber Quatsch ist *g*). Konvertieren (also Umwandlen des Objekts) kann DirectCast n�mlich gar nicht (das macht dann CType, weswegen CType auch etwas langsamer ist). DirectCast wechselt nur den Typ, mit dem ein Objekt angesprochen wird. Daher erwartet DirectCast auch, dass das zu konvertierende Objekt den gleichen Laufzeittyp hat, wie der Zieltyp. D.h. zwischen abgeleiteten Klassen und implementierte Schnittstellen kannst Du mit DirectCast hin- und herwechseln wie Du Lustig bist(siehe unten). Muss es eine Konvertierung von einem Typ in den anderen sein, dann muss CType ran (geht nat�rlich nur, wenn eine Konvertierung m�glich ist). Class test Inherits MyBaseClass Implements IDisposable Implements IComparable End Class Dim x As New test Dim t1 As MyBaseClass = DirectCast(x, MyBaseClass) Dim t2 As IDisposeable = DirectCast(x, IDisposeable) Dim t3 As ICompareable = DirectCast(x, ICompareable) 'und zur�cl Dim z1 As test = DirectCast(t1, test) Dim z2 As test = DirectCast(t2, test) Dim z3 As test = DirectCast(t3, test) Viele Gr��e, Wolfgang http://www.vbwelt.de/ > -----Urspr�ngliche Nachricht----- > Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im > Auftrag von Christoph Wille > Gesendet: Donnerstag, 10. Juni 2004 17:14 > An: [EMAIL PROTECTED] > Betreff: Re: AW: [Vb.net] Directcast > > At 04:21 PM 6/10/2004, you wrote: > > >Und wie w�r's mit dem Indexer der Stringklasse? > > > >mmh, Indexer? Sorry, hab ne L�cke in meinem bisherigen VB.NET-Wissen > >(welche doch noch sehr gross ist :)), aber was genau meinst du damit? > > C# Syntax: > > string strWhatEver = "help me"; > char c = strWhatEver[0]; > > Chris _______________________________________________ Vb.net Mailingliste, Postings senden an: [EMAIL PROTECTED] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/vb.net _______________________________________________ Vb.net Mailingliste, Postings senden an: [EMAIL PROTECTED] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/vb.net
