我有一个类Record,并且在该类中是一个对象(字段)数组。理想情况下,我希望能够调用Record.ToString()并返回字段数组中每个Field的ToString()。 Field类包含charArray。
class Record
{
class Field
{
public char[] contents;
public Field(int size)
{
contents = new char[size];
}
}
public Field[] fields;
public Record()
{
fields = new Field[4];
foreach(Field f in fields)
f = new Field(4);
}
public override string ToString()
{
string output = null;
foreach(Field f in fields)
output += f.contents.ToString();
return output;
}
}
请注意;我没有发布我的所有代码,但我确实初始化了填充内容char []的函数,因此它们不是空的。
出于某种原因,调用Record.ToString()会返回System.Char []。 我有一个Record实例,并尝试过多种不同的方法,包括在Field类中重写ToString(),返回contents.ToString(),但它给了我相同的输出。最奇怪的是,
System.Console.WriteLine(Record.fields[x].contents);
给我内容中包含的字符串。
答案 0 :(得分:2)
答案 1 :(得分:1)
当你调用f.contents.ToString()时,你正在返回char [];不是内容的内容。如果你想要返回内容中的内容,那么你要么必须遍历f.contents [],要么使用Phillip Grassl发布的内容,它将使用char []并从中创建一个字符串。
f.contents.ToString()= char [];
new string(f.contents)= char [0] + char [1] + char [2] + char [3]。 。 。等