Как вычесть байты в одной строке в C #

Это действительно странно. Кто-нибудь может это объяснить?

Этот код НЕ работает:

const byte ASC_OFFSET = 96;
string Upright = "firefly";
byte c7 = (byte)Upright[6] - ASC_OFFSET;
//Cannot implicitly convert type 'int' to 'byte'.

Этот код также НЕ работает:

const byte ASC_OFFSET = 96;
string Upright = "firefly";
byte c7 = (byte)Upright[6] - (byte)ASC_OFFSET;
//Cannot implicitly convert type 'int' to 'byte'.

Тем не менее, размещение вычитания в отдельной строке отлично работает:

const byte ASC_OFFSET = 96;
string Upright = "firefly";
byte c7 = (byte)Upright[6];
c7 -= ASC_OFFSET;

Я не против поставить операторы в отдельных строках, если мне нужно ... но я должен задаться вопросом ...

Почему?

5
задан Flipster 2 January 2011 в 07:28
поделиться