c#我的吸气器不起作用

时间:2013-11-01 23:42:07

标签: c#

我正在尝试在Visual Studio中为我的班编写一个anagram分析器,但是当我从另一个类调用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;}
         } 
}
}

这是我删除不需要的字符并列出有效字符的位置。我做了一个字符串来测试它是否会显示它确实显示,但是readyWord列表没有正确显示。

 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类中编写列表时,一切都是应该的。

有关为何发生这种情况的任何建议?

1 个答案:

答案 0 :(得分:0)

从AnagramManager类实例化UserInput类时,永远不会为其分配任何内容。你使用:

UserInput u = new UserInput();

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