c# - 这会导致溢出吗?为什么,为什么不呢?

标签 c# types casting

这会导致溢出吗?如果不会,那为什么不呢?因为 '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/

相关文章:

haskell - 如何在haskell中获取值类型

c# - 有没有办法确定泛型类型是否是从特定的泛型类型定义构建的?

c# - Observable.Interval 同时执行一个方法两次

c# - 使用 include 和 exclude 进行搜索的正则表达式模式

scala - 路径依赖类型和嵌套特征

swift - 你们都可以在集合中找到一个类型的第一个实例,并将该实例作为具体类型返回吗?

c - 如果 fgetc 读取 0xFF 会发生什么?

c - void 表达式的无效使用 - 使用类型转换添加 2 个不同类型的指针

c# - Entity Framework v1 - 高流量网站高峰时段出现 "Timeout expired"异常

c# - 如何阻止 VS Designer 弄乱我已经存在的代码