我正在嘗試將一個類添加到字典中,但是當我嘗試將它寫入控制臺時,它只寫:[1、DictionaryTest.Program+book]我想讓它寫:[1,邁克爾,書]這是我創建字典并嘗試在控制臺上顯示它的主要內容:static void Main(string[] args) { Dictionary<int,book> books = new Dictionary<int, book>(); var book1 = new book("Michael","The Book"); books.Add(1,book1); foreach(KeyValuePair<int,book> b in books) { Console.WriteLine(b); } }這是帶有我的兩個字符串的“書”類public class book { private string Author; private string Title; public book(string Author, string Title) { this.Author = Author; this.Title = Title; } }
3 回答

婷婷同學_
TA貢獻1844條經驗 獲得超8個贊
覆蓋類的ToString()方法
當您創建自定義類或結構時,您應該覆蓋 ToString 方法,以便向客戶端代碼提供有關您的類型的信息。
如果不這樣做,.NET 不知道要顯示哪些屬性,默認情況下它將顯示類的名稱
public class book
{
public override string ToString(){
return $"{Author} , {Title}";
}
}

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
如果您制作Author
并Title
公開,那么您將能夠以這種方式格式化您的輸出:
Console.WriteLine($"[{b.Key}, {b.Value.Author}, {b.Value.Title}]");

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
Thierry V 的回答是要走的路。一個類不僅僅打印自己,它需要知道當你需要它作為一個字符串時要打印什么。
另一種選擇是將您的Author
和Title
屬性設為公開并使用您的Book
實例的屬性,如下所示:
Console.WriteLine($"{b.Key}, {b.Value.Author}, {b.Value.Title}");
- 3 回答
- 0 關注
- 213 瀏覽
添加回答
舉報
0/150
提交
取消