0

我正在尝试在 Visual Studio 中为我的班级编写一个字谜分析器,但是当我从另一个班级调用 getter 时,我的列表是空的。

public class UserInput
{
    private String fileName;
    private string text;
    private string[] words;
    private List<string> preparedWord = new List<string>();
    Regex reg = new Regex(@"(\s-|[^A-Za-z0-9])");
    private string t = "testing";

    public void promptFile()
    {
        Console.WriteLine("Enter a .txt file");
        this.fileName = Console.ReadLine();
        this.fileConversion();
        this.wordSeperator();

       // foreach (string word in this.preparedWord)
        //{
          //  System.Console.WriteLine(word);
        //}

        //{
        //    System.Console.WriteLine(this.preparedWord.Count);
        //}
    }

    public String getFileName
    {
        get { return this.t; }
    }

    private void fileConversion()
    {
         StreamReader streamReader = new StreamReader(this.fileName);
        this.text = streamReader.ReadToEnd();
        streamReader.Close();
        Console.WriteLine(text);
    }

    public void wordSeperator()
    {
        this.words = text.Split(' ', ',', '.', ':','\t');

        foreach (string s in words)
        {
            this.preparedWord.Add(reg.Replace(s, ""));// @"\W\S", ""));
        }
    }

    public List<string> getPreparedList{
         get
         {
              return this.preparedWord;}
         } 
}
}

这是我删除不需要的字符并列出有效字符的地方。我制作了一个字符串来测试它是否会显示并且确实显示了,但是preparedWord 列表没有正确显示。

 class AnagramManager
 {
     FileToStringConverter fileString = new FileToStringConverter();

     UserInput u = new UserInput();
     // string pattern = @"[\d-]";
     //Regex reg;
     String test = "123rrtdfr34 h%$5 yy.yy hjh-hk 788995a";

     public static string RemoveDigits(string key)
     {
         return Regex.Replace(key, @"\d", "");  
     }

     public void writeList()
     {
        foreach (string word in this.u.getPreparedList)
        {
            System.Console.WriteLine(word);
        }

        System.Console.WriteLine(this.u.getFileName);
     }
}

当我调用它的方法来写单词时,它是空白的,它说计数是 0。当我在 UserInput 类中编写列表时,一切都应该是这样。

关于为什么会发生这种情况的任何建议?

4

1 回答 1

0

当您从 AnagramManager 类实例化 UserInput 类时,您永远不会为它分配任何东西。你用:

UserInput u = new UserInput();

然后你有一个类的空实例。您需要定义一个构造函数来将一些数据放入其中,或者从 AnagramManager 填充它。

于 2013-11-01T23:51:42.173 回答