我花了一些时间研究System.IO
名称空间,之后我找到了一些有趣的地方。 Stream
类包含名称为ReadByte的方法和类似的定义:
public virtual int ReadByte()
所以实际上我的问题是为什么方法调用ReadByte
并返回int
?
这样命名的目的是什么?
答案 0 :(得分:7)
ReadByte
返回
无符号字节转换为
Int32
,如果在流的末尾则为-1。
这种方法(具有不与任何可能的byte
值冲突的特殊值)导致使用整数类型,其延伸" byte
。
原则上,像short
这样的类型也可以使用,但使用int
更加自然和传统。