C#。为什么当我使用 TextReader.Read() 时它返回一个 int 值?可以转换成char吗?

Ale*_*der 5 c# input int32 char textreader

因此 TextReader.ReadLine() 返回一个字符串,但 TextReader.Read() 返回一个 int 值。这个 int 值似乎也是某种我无法识别的格式。是否可以将这个整数转换为字符?谢谢你的帮助。

编辑:

TextReader 值 = new StreamReader(@"txt");

    string SValue1;
    int Value1;       
    Value1 = Values.Read();        
    Console.WriteLine(Value1);
    Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

当它读出值时,它给出 51 作为输出。txt文件中的第一个字符是3。为什么会这样做呢?

小智 2

根据StringReader 类(TextReader 的子类)的文档Read(), 的返回值可以转换为字符,但您需要首先检查是否位于文件/字符串的末尾(通过检查 - 1)。例如,在文档中修改后的代码中:

while (true)
{
    int integer = stringReader.Read();

    // Check for the end of the string before converting to a character.
    if (integer == -1)
        break;

    char character = (char) integer; // CONVERT TO CHAR HERE

    // do stuff with character...
}
Run Code Online (Sandbox Code Playgroud)