这会导致溢出吗?如果不会,那为什么不呢?因为 'byte' 类型仍将保持 8 位大小,如果它不会导致溢出,那么这是否意味着 'casting' 将内存中 'byte' 类型的分配从 8 位增加到 32 位?..最终类型转换 [隐式] 实际上是如何工作的?
//a part of c# program
byte b = 100;
b = (Byte)(b + 200);
Console.WriteLine("VALUE OF BYTE TYPE'S OBJECT {0}",b);
//end
最佳答案
如果表达式产生的值超出目标类型的范围,则结果将被截断。
如果你想知道你的代码是否产生溢出,你应该使用检查语句(msdn):
checked
{
byte b = 100;
b = (Byte)(b + 200);
Debug.WriteLine("VALUE OF BYTE TYPE'S OBJECT {0}", b);
}
关于c# - 这会导致溢出吗?为什么,为什么不呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912117/