W języku C# (3.5) I spróbuj wykonać następujące czynności:Dlaczego nie mogę wykonywać logiki boolowskiej na bajtach?
byte byte1 = 0x00;
byte byte2 = 0x00;
byte byte3 = byte1 & byte2;
i dostaję błąd 132:. „Nie można niejawnie przekonwertować typu 'int' do 'bajt' Wyraźne konwersji istnieje (czy brakuje obsady?) ". To samo dzieje się z | i ^.
Co robię źle? Dlaczego pyta mnie o ints? Dlaczego nie mogę logiki boolowskiej na bajtach?
Wszystkie arytmetyczne w .NET są oparte na int. Z niektórymi dyskusjami wiąże się podobne pytanie. To nie jest odpowiedź na twoje pytanie, ale możesz uzyskać wgląd w to, jak C# radzi sobie z arytmetyką w ogóle: http://stackoverflow.com/questions/941584/byte-byte-int-why –
"Ponieważ C# nie jest idealne język ", tak to wytłumaczyłbym. Jest to jeden z jego brodawek (i w porównaniu z innymi językami, C# ma zdecydowanie najmniejszą i najmniej imponującą liczbę brodawek ...) –