【发布时间】:2015-07-25 22:02:41
【问题描述】:
我花了一些时间研究System.IO 命名空间,之后我发现了一些有趣的地方。 Stream 类包含名称为 ReadByte 的方法和类似的定义:
public virtual int ReadByte()
所以实际上我的问题是为什么方法调用ReadByte 并返回int?
这样命名的目的是什么?
【问题讨论】:
我花了一些时间研究System.IO 命名空间,之后我发现了一些有趣的地方。 Stream 类包含名称为 ReadByte 的方法和类似的定义:
public virtual int ReadByte()
所以实际上我的问题是为什么方法调用ReadByte 并返回int?
这样命名的目的是什么?
【问题讨论】:
ReadByte 返回
无符号字节转换为
Int32,如果在流的末尾则为-1。
这种方法(具有不与任何可能的byte 值冲突的特殊值)导致使用“扩展”byte 的整数类型。
原则上,short 之类的类型也可以使用,但使用 int 更加自然和传统。
【讨论】:
int,除非有充分的理由更喜欢另一个整体类型(如short 或uint)。