数式に異なる数値タイプのオペランド(定数と変数)が含まれている場合、次の規則に従って、オペランドはより大きなタイプにプロモートされます。
- オペランドがタイプ、、、、、の場合、それらはタイプに変換さ
byte
れますsbyte
char
short
ushort
int
- オペランドの1つがである場合
int
、すべてのオペランドはに変換されますint
- 式にタイプ
uint
とのオペランドも含まれている場合int
、すべてのオペランドは次のように変換されます。long
- オペランドの1つが、の場合
long
、すべてのオペランドはに変換されますlong
- 式にタイプ
ulong
とのオペランドが含まれている場合、オペランドは次のlong
ように変換されます。float
- オペランドの1つがである場合
float
、すべてのオペランドはに変換されますfloat
- オペランドの1つが、の場合
double
、すべてのオペランドはに変換されますdouble
数値式にさまざまな型のオペランドが含まれているとすると、すべてのオペランドが最初に単一の数値型に変換され、次にランタイムが結果を計算しようとしますか?たとえば、変数b1
とb2
がbyte
型であり、i1
が型である場合、計算の前にint
willb1
とb2get
がintに変換され(b1+b2)
ます。
int i2=(b1+b2)+i1