tôi phải đoạn mã sau trong VS2008 .net 3.5 sử dụng WinForms:Tại sao một diễn viên được yêu cầu cho phép trừ byte trong 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);
Khi tôi rời khỏi "(byte)
" tắt dòng cuối cùng của mã này, tôi nhận được một lỗi biên dịch nói rằng nó "có thể không mặc nhiên chuyển đổi các loại 'int
' đến 'byte
'. " Nếu mọi thứ thuộc loại byte
và byte
là một loại số nguyên ... thì tại sao tôi cần phải có dàn diễn viên?
Eric Lippert nói, "Tôi không nghĩ byte là" số ", tôi nghĩ chúng là các mẫu bit có thể được _interpreted_ dưới dạng số, hoặc ký tự hoặc màu hoặc bất kỳ thứ gì. làm toán trên chúng và xử lý chúng dưới dạng số, sau đó nó có ý nghĩa để di chuyển kết quả vào một kiểu dữ liệu thường được hiểu là một số. " Xem http://stackoverflow.com/questions/941584/byte-byte-int-why-c. – Brian
Các bạn nhận ra rằng bạn đã đánh dấu mục này là trùng lặp mặc dù nó được hỏi * trước * liên kết "đã có câu trả lời ở đây"? –
Địa ngục, bây giờ nó thậm chí còn nói "hỏi trước" mặc dù câu hỏi khác đã được hỏi ba năm sau đó. –