我正在尝试在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类中编写列表时,一切都是应该的。
有关为何发生这种情况的任何建议?
答案 0 :(得分:0)
从AnagramManager类实例化UserInput类时,永远不会为其分配任何内容。你使用:
UserInput u = new UserInput();
然后你有一个空类的实例。您需要定义一个构造函数来将一些数据放入其中,或者从AnagramManager中填充它。