byte, sbyte, short
and ushort
is promoted to int during the calculation.
using System;
class Program
{
static void Main(string[] args)
{
byte i = 5;
byte j = 6;
byte result = i + j;
}
}
The code above generates the following compiling error:
C:\g>csc Program.cs
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.
Program.cs(10,23): error CS0266: Cannot implicitly convert type 'int' to 'byte'.
An explicit conversion exists (are you missing a cast?)
Since the i
and j
are promoted to int
and the result of i + j
is int
,which cannot be converted to byte.
To fix it, add a cast:
using System;
class Program
{
static void Main(string[] args)
{
byte i = 5;
byte j = 6;
byte result =(byte) (i + j);
Console.WriteLine(result);
}
}
The output:
11
java2s.com | Contact Us | Privacy Policy |
Copyright 2009 - 12 Demo Source and Support. All rights reserved. |
All other trademarks are property of their respective owners. |