我正在对 .NET 和 C# 中的 StringReader 类进行一些研究,使用此处找到的实现: https: //referencesource.microsoft.com/#mscorlib/system/io/stringreader.cs
我创建了一个小类,我认为它使用相同的基本实现来读取字符串,但令我惊讶的是我的代码比 .NET StringReader 慢两倍多。
这是我的课程:
public class DataReader
{
private String source;
private int pos;
private int length;
public DataReader(string data)
{
source = data;
length = source.Length;
}
public int Peek()
{
if (pos == length) return -1;
return source[pos];
}
public int Read()
{
if (pos == length) return -1;
return source[pos++];
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码:
using System;
using System.IO;
using System.Diagnostics;
using System.Text;
using System.Collections.Generic;
public class Program
{ …Run Code Online (Sandbox Code Playgroud)