Mahlzeit ! Kurze Frage. Ich nutze auch seit kurzen C# und habe mit der Umstellung zu C noch etwas zu kämpfen. public partial class data { public byte anzahl; } public partial class boot { data test = new data(); byte value = 0; value = test.anzahl + 0x04; } Warum kann ich zu test.anzahl keine 0x04 dazu zählen ? Ich bekomme eine Fehlermeldung : Cannot implicitly convert type 'int' to 'byte'. An explicit conversion exists (are you missing a cast?) Lesen kann ich auch - aber ich suche eine einfache Lösung für mein Problem!! Gruss
Ich kenn mich mit C# auch nicht aus, aber könnte das funktionieren?: public partial class boot { data test = new data(); byte value = 0; value = test.anzahl + (byte) 0x04; }
Oder schau mal hier: http://galileocomputing.de/openbook/csharp/kap14.htm Dann könnte der Ausdruck so lauten: public partial class boot { data test = new data(); byte value = 0; value = (byte) (test.anzahl + 0x04); }
Patrick meinte vermutlich Kapitel 16: http://galileocomputing.de/openbook/csharp/kap15.htm Besonders hilfreich in Patricks Link ist der Punkt 15.4 :)
1 | 15.4 Numerische Umwandlungen |
2 | |
3 | Regeln für die numerischen Umwandlungen entnehmen Sie bitte Kapitel 15, Konvertierungen. |
Da hat wohl wer die Kapitelnumerierung etwas durcheinander gewürfelt.
Das kann man als Vor- oder als Nachteil auffassen, unter C# müssen die Werte mit denen gerechnet wird, das gleiche Format haben, zur Konvertierung macht man dann etwas wie Uint16 anz16 = 44; int anz = Convert.ToInt(anz16); Teilweise ist das halt etwas umständlich, wirkt aber potenziellen Fehlern entgegen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.