关于 Nand2Tetris 课程,我已经完成了书中的项目 7,作为一个巨大的 C# 菜鸟,我想我会尝试用这种语言来实现它作为练习。具体来说,我正在尝试遵循 Parser 模块的规范,但我已经在第一步中遇到了困难,这表明 Parser 的构造函数具有:
- 参数:输入文件/流
- 功能:打开输入文件/流并准备解析它
到目前为止,我的主程序(Program.cs)是:
namespace VM_1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Program Main");
FileStream inFileStream = File.Create(@"c:\Users\<USERNAME>\Documents\Nand2Tetris\nand2tetris\projects\07\VM 1\in.vm");
Parser parser = new Parser(inFileStream);
}
}
}
而解析器模块(Parser.cs)是:
namespace VM_1
{
public class Parser
{
public Parser(FileStream inFileStream)
{
Console.WriteLine("Parser Constructor");
}
static void ParserMain()
{
Console.WriteLine("Parser Main");
}
}
}
我不知道这是否是构建 C# 程序的正确方法,但我的谷歌搜索已将我引向它,并且 Program.cs 和 Parser.cs 似乎可以毫无问题地集成。
问题是在 Parser 模块中,我试图将文件流作为参数,以便我可以在其构造函数中打开它。因此,我在 Program.cs 中使用File.Create()
,尝试File.Open()
为 Parser 模块保留。这是因为,正如书中所述,在 Parser 的构造函数中,我必须实际打开文件流,也就是说,我不应该在 Program.cs 中打开它。但是每个打开文件的 C# 示例都需要一个字符串路径作为它的第一个参数,我已经在 Program.cs 中提供了它。所以我不确定如何在项目中实施这第一步。任何帮助表示赞赏。
谢谢