Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C# Char nach Int32: aus 3 wird 51 (https://www.delphipraxis.net/49188-char-nach-int32-aus-3-wird-51-a.html)

CalganX 6. Jul 2005 20:11

Re: Char nach Int32: aus 3 wird 51
 
Hi,
@Sebastian: :wall: Stimmt. :oops:

@Oliver: naja, es geht technisch nicht. ;) Der Debugger meckert einfach.

Chris

Robert_G 6. Jul 2005 20:16

Re: Char nach Int32: aus 3 wird 51
 
@Chris
Nico wollte damit andeuten, dass char unicode enthält. ;)
Zitat:

Zitat von Olli
Zitat:

Zitat von Chakotay1308
@Olli: Naja... int(bla) geht aber nicht. :zwinker:

:gruebel: wie jetzt? C# hat diesen Stil wieder abgeschafft?

@Olli ein direkter cast auf einen falschen Typen führt in C# zu einer null reference als Rückgabewert.
Ein safe cast auf einen falschen Typen (x as SomeType) führt zur Exception.
Bei value types führt es unweigerlich zur Exception, da value types in .Net keine null references sein können.
Zitat:

Oder meinst du, daß die Umwandlung eines ASCII-Zeichens von '0'..'9' nicht geht. Doch geht - aber nur mit Subtraktion! Das war aber deiner anfänglichen Frage nicht zu entnehmen.
Dafür gibt es die Convert Klasse und gut ist. ;)
Für eigene Klassen/value types kann man den Operator für implizite oder explizite Umwandlung überladen.
Es gibt diese Überladung zum Bleistift für einen expliziten Cast von Char <-> Int32.

Olli 6. Jul 2005 20:23

Re: Char nach Int32: aus 3 wird 51
 
Zitat:

Zitat von Robert_G
@Olli ein direkter cast auf einen falschen Typen führt in C# zu einer null reference als Rückgabewert.

Wenn in int(Bla) das Bla vom Typ char wäre, wäre der Cast aber gültig. Oder hat sich soviel geändert und die Integertypen sind untereinander nicht mehr kompatibel? Klärt mal auf.

nailor 6. Jul 2005 20:27

Re: Char nach Int32: aus 3 wird 51
 
der "harte" typecast geht in c# weiterhin (sofern man jetzt nich irgendwas absolut unmögliches machen will) mit den implicit/explicit typecasts. das problem scheint mir hier wirklich das verwechseln des "ASCII"-Wertes (oder was auch immer es jetzt genau ist) mit der Zahl, die dieser Wert darstellt zu sein.

btw: der gute alte freund google: http://www.cs.arizona.edu/classes/cs...ndouts/10.html

Robert_G 6. Jul 2005 20:59

Re: Char nach Int32: aus 3 wird 51
 
Zitat:

Zitat von nailor
der "harte" typecast geht in c# weiterhin (sofern man jetzt nich irgendwas absolut unmögliches machen will) mit den implicit/explicit typecasts.

Aber nur wenn man den explicit/implicit Operator überlädt!!!
Code:
class X{}

class Y{}

struct A{}

struct B{}


class Z
{
  void Miep()
  {
   
    X x = new X();
    Y y = (Y)x; // null reference

    A a = new A();
    B b = (B)a; // boom, da b nicht null sein darf!   
  }
}
[edit=alcaeus]Code-Tag repariert ;) Mfg, alcaeus[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz