FileStream.ReadByte:字节永远不是负数?

ric*_*ard 6 .net c# filestream

来自msdn:

FileSystem.ReadByte
转换为Int32的字节,如果已到达流的末尾,则为-1.

所以-1基本上是一个"神奇的价值".这是否意味着从流返回的字节永远不会是负数?如果没有,为什么不呢?

Guf*_*ffa 10

在C#中,a的值byte是0到255之间的数字,因此字节永远不会为负数.

sbyte数据类型是有符号字节,因此它具有-128和127之间的值.

(在某些其他语言中,例如Java,byte数据类型已签名.)

  • 这就是为什么在java中read方法返回一个整数而不是一个字节的原因 - 因为一个字节也可能有-1.read返回字节的整数表示. (2认同)