我有一個類Record,在該類內是一個對象(字段)數組。理想情況下,我希望能夠調用Record.ToString(),並返回字段數組中每個字段的ToString()。 Field類包含一個charArray。重寫時無法得到正確的返回值ToString()
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);
給我包含在內容中的字符串。
真棒,謝謝!我確實有一個問題,當我打電話時,它爲什麼會起作用? System.Console.WriteLine(Record.fields [x] .contents); –
這是一個很好的問題,我敢肯定知道比我更瞭解的人會知道。但我相信魔術。可能是控制檯做了什麼,因爲它不喜歡數組?因爲它正在傳遞整個數組,而不是ToString()的值 – Seige
事實上,雖然它會工作,如果你調用contents.ToString()以及 –