Entwickler-Ecke

C# - Die Sprache - C# checked


12profi - Sa 14.08.10 20:18
Titel: C# checked
Hallo,kann mir jemand das checked in c# erklären weil z.b. mit oder ohne checked ist es das gleiche :



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
static void Main(string[] args)
        {
            // Zahleneingabe anfordern 
            Console.Write("Geben Sie eine Zahl im Bereich von ");
            Console.Write("0...{0} ein: ", Int16.MaxValue);
            // Eingabe einem short-Typ zuweisen 
            short shtVar = Convert.ToInt16(Console.ReadLine());
            // Überlaufüberprüfung einschalten 
            byte byteVar = checked((byte)shtVar);
            Console.WriteLine(byteVar);

            
        }

und ohne gibt es kein Unterschied wenn ich das Programm ausführe oder?

Ich hoffe ihr könnt mir helfen ;)
mfg 12profi


gfoidl - Sa 14.08.10 20:53

Hallo,

siehe zB hier [http://lmgtfy.com/?q=C%23+checked].


mfG Gü


12profi - Sa 14.08.10 22:28

Hi,
Danke das habe ich auch versucht nur leider verstehe ich das nicht (zu kompliziert für ein 12jährigen Jungen) desewegen wollte ich das mir das jemand mit eigenen Wirten erklärt

mfg 12profi


Th69 - So 15.08.10 10:15

Wenn du jetzt zur Laufzeit einen Wert dort angibst, der nicht mehr in ein 'byte' (0 bis 255) paßt, dann kriegst du eine OverflowException (ohne das checked würde einfach bei short->byte das obere Byte ignoriert).

P.S: Der Compiler kann Fehler bei "checked" nur erkennen, wenn es sich innerhalb der Klammern um konstante Ausdrücke handelt, z.B.

C#-Quelltext
1:
2:
3:
const short shVar = 1000// als Klassenmember

byte byteVar = checked((byte)shVar);


12profi - So 15.08.10 10:20

Achso das heißt:Mit checked checkd er ob es Konvertiert werden kann und gibt mir fals es falsch ist einen Lauftzeitfehler an. Ahhhhh Danke

mfg 12profi


Greenberet - So 15.08.10 11:20

user profile icon12profi hat folgendes geschrieben Zum zitierten Posting springen:
Achso das heißt:Mit checked checkd er ob es Konvertiert werden kann und gibt mir fals es falsch ist einen Lauftzeitfehler an. Ahhhhh Danke

mfg 12profi


Nicht nur beim Konvertieren. auch wenn du z.b. int.MaxValue + 1 machst. Ohne würdest du auf int.MinValue kommen und mit checked bekommst du eine Exception


12profi - So 15.08.10 12:34

Was ist das eig.Exception

Mfg 12profi


Delete - So 15.08.10 12:44

user profile icon12profi hat folgendes geschrieben Zum zitierten Posting springen:
Was ist das eig.Exception

Wie bitte?


12profi - So 15.08.10 13:04

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
user profile icon12profi hat folgendes geschrieben Zum zitierten Posting springen:
Was ist das eig.Exception

Wie bitte?

was ist eine Exception?


Delete - So 15.08.10 13:38

Nutz doch einfach mal Google. Oder such hier im Forum. Oder guck in dein Buch.


12profi - So 15.08.10 15:50

Ok,ok danke


Delete - So 15.08.10 16:04

http://lmgtfy.com/?q=C%23+checked


12profi - So 15.08.10 16:28

^^ Danke hab ich schon nachgekugt