程序没有运行/进入调试点

时间:2015-10-09 18:58:01

标签: c# parsing visual-studio-2015

我在这里得到了很多帮助,我很感激。但是,我似乎无法让我的简单文本解析器工作。任何帮助指出我的错误将不胜感激。

我的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]

我从未得到过&#34;来自Cawk&#34;的测试输出虽然。我保存它,构建它,然后从命令提示符运行应用程序。为什么我从未到过Cawk的Console.Writeline?

谢谢大家。

1 个答案:

答案 0 :(得分:3)

当然你没有,Execute返回一个你忽略的枚举。在枚举之前,Enumerables实际上并不执行它们中的代码。

例如,修复将是:

foreach(Cawk.Execute(File.OpenText(@"C:\Temp\test.txt")));

我希望这是一个足够大的线索,表明您的架构存在严重问题。