我在这里得到了很多帮助,我很感激。不过,我似乎无法让我的简单文本解析器工作。任何帮助指出我的错误的帮助将不胜感激。
我的 Program.cs 是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Cawk
{
class Program
{
static void Main()
{
Cawk.Execute(File.OpenText(@"C:\Temp\test.txt"));
}
}
}
从那里我试图将一个简单的文本文件传递到我的解析器,但我在开始时有一个控制台调试行并且它从未被写入,我也没有从程序中获得任何输出。
Cawk.cs 看起来像:
using System;
using System.Collections.Generic;
using System.IO;
namespace Cawk
{
public static class Cawk
{
public static IEnumerable<Dictionary<string, object>> Execute(StreamReader input)
{
Dictionary<string, object> row = new Dictionary<string, object>();
Console.WriteLine("Test output from Cawk");
string line;
//string[] lines = File.ReadAllLines(path);
//read all rows
while ((line = input.ReadLine()) != null)
{
// trim trailing spaces
//line = line.Trim();
//[and so on until the line is parsed and written to the console]
虽然我从来没有得到“来自 Cawk 的测试输出”。我正在保存它,构建它,然后从命令提示符运行应用程序。为什么我永远无法访问 Cawk 中的 Console.Writeline?
谢谢大家。
当然你不需要,Execute
返回一个你忽略的枚举。枚举对象在被枚举之前不会实际执行其中的代码。
例如,修复方法是:
foreach(Cawk.Execute(File.OpenText(@"C:\Temp\test.txt")));
我希望这是一个足够大的线索,表明您的架构存在严重问题。
我是一名优秀的程序员,十分优秀!