我之前在 C 中创建了一个基本的解释器,其中一个预处理器大大减轻了解析的负担。我想将这个预处理器移植到C#中使用,我遇到了麻烦,因为我还是C#的新手。
我的旧预处理器就像
那样var $mine= this; //weird intendtation var $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作为字符值。如何使标识符名称仍然非常容易阅读呢?在这种情况下,拥有一个字符串数组或字符串构建器对象会更好吗?
答案 0 :(得分:6)
我建议您使用List<string>
,并一次向列表中添加一个项目。
这为您提供了字符串数组的所有可用性,但它会动态增长。如果使用这种方法,解析文件的C#代码应该比C代码更简单,更容易理解。