2013-11-01 21 views
0

我想爲我的類在Visual Studio中編寫一個anagram分析器,但是當我從另一個類調用getter時,我的列表是空的。c#我的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類名單應該是方法。

有關爲什麼會發生這種情況的任何建議?

+1

@ Smac89 - 不,他說得對 –

+1

你確定'wordSeperator()'被調用嗎?它只被'promptFile()'調用,它不被任何東西調用。 –

+0

@ musical_coder對不起,我忘了將這個類粘貼到我調用promptFile()的主要方法中。但是,它被稱爲。 – user2946695

回答

0

當你從你的AnagramManager類實例化你的UserInput類時,你永遠不會分配任何東西給它。您使用:

UserInput u = new UserInput(); 

然後你有一個空的班級實例。你需要定義一個構造函數來放置一些數據,或者從AnagramManager中填充它。

+0

我不明白。對不起,我是新來的c# – user2946695

+0

我剛想出你的意思。謝謝,它現在有效。 – user2946695