devo seguente codice in VS2008 NET 3.5 utilizzando WinForms:Perché è richiesto un cast per la sottrazione di byte in C#?
byte percent = 70;
byte zero = 0;
Bitmap copy = (Bitmap)image1.Clone();
...
Color oColor = copy.GetPixel(x, y);
byte oR = (byte)(oColor.R - percent < zero ? zero : oColor.R - percent);
Quando lascio il "(byte)
" off l'ultima riga di codice, ottengo un errore di compilazione dicendo che "Non può convertire implicitamente il tipo 'int
' a 'byte
'. " Se tutto è di tipo byte
e byte
è un tipo intero ... allora perché devo avere il cast?
Eric Lippert dice "Non penso ai byte come ai" numeri ", li considero come modelli di bit che possono essere interpretati come numeri, caratteri, colori o qualsiasi altra cosa. facendo matematica su di loro e trattandoli come numeri, allora ha senso spostare il risultato in un tipo di dati che viene più comunemente interpretato come un numero. " Vedi http://stackoverflow.com/questions/941584/byte-byte-int-why-c. – Brian
Ragazzi, vi rendete conto che avete contrassegnato questo come un duplicato anche se è stato chiesto * prima * il link "ha già una risposta qui"? –
Inferno, ora dice anche "chiesto prima" anche se l'altra domanda è stata posta tre anni dopo. –