0

クラス用に Visual Studio でアナグラム アナライザーをプログラムしようとしていますが、別のクラスからゲッターを呼び出すとリストが空になります。

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;}
         } 
}
}

ここで、不要な文字を削除し、有効な文字のリストを作成しました。表示されるかどうかをテストする文字列を作成しましたが、表示されましたが、準備されたWordリストが正しく表示されません。

 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 に答える