1

我之前在C 语言中使用预处理器制作了一个基本的解释器,该预处理器减轻了解析等的大量负担。我现在想移植这个预处理器以在 C# 中使用,但我遇到了麻烦,因为我对 C# 还是很陌生。

我的旧预处理器使它像这样

变量 $mine= 这个;
      //奇怪的意图
变量 $something + $a=$b;

会变成相当机器可读的东西

var\0$mine\0=this\0;\0var\0$something\0+$a\0=$b\0;\0

( \0 为 NULL 以便我可以非常轻松地获取变量和标识符的名称)

好吧,使用我的旧代码,我一次读取一个字节,并根据它是否有空格以及最后一个字符等是什么,然后它将插入字符、插入 NULL 或忽略该字符。

好吧,我无法将其转换为 C# 代码。我正在使用 StringBuilder 类并使用 Insert() 一次插入一个字符。但我的问题是我不能使用 \0 作为字符值。我怎样才能使标识符名称仍然非常容易阅读?在这种情况下,拥有一个字符串数组或字符串构建器对象会更好吗?

4

1 回答 1

6

我建议使用List<string>, 并一次将项目添加到列表中。

这为您提供了字符串数组的所有可用性,但它会动态增长。如果您使用这种方法,用于解析文件的 C# 代码应该比 C 代码更简单、更容易理解。

于 2009-08-11T01:08:43.667 回答