【问题标题】:Why Stream.ReadByte return int? [duplicate]为什么 Stream.ReadByte 返回 int? [复制]
【发布时间】:2015-07-25 22:02:41
【问题描述】:

我花了一些时间研究System.IO 命名空间,之后我发现了一些有趣的地方。 Stream 类包含名称为 ReadByte 的方法和类似的定义:

public virtual int ReadByte()

所以实际上我的问题是为什么方法调用ReadByte 并返回int? 这样命名的目的是什么?

【问题讨论】:

    标签: c# .net stream


    【解决方案1】:

    ReadByte 返回

    无符号字节转换为Int32,如果在流的末尾则为-1。

    这种方法(具有不与任何可能的byte 值冲突的特殊值)导致使用“扩展”byte 的整数类型。

    原则上,short 之类的类型也可以使用,但使用 int 更加自然和传统。

    【讨论】:

    • 这里的“自然”是什么意思?
    • @dumbledad "自然和传统" 在某种意义上,C# 中有一种常见的做法是使用int,除非有充分的理由更喜欢另一个整体类型(如shortuint)。
    猜你喜欢
    • 1970-01-01
    • 2020-06-05
    • 2021-02-02
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    相关资源
    最近更新 更多