我有一個簡單的類叫做 Country
class Country
{
private string name;
private string capital;
private string currency;
private int gdp;
public Country(string n, string cap, string curr, int the_gdp)
{
name = n;
capital = cap;
currency = curr;
GDP = the_gdp;
}
public string Name { set; get; }
public string Capital { set; get; }
public string Currency { set; get; }
public int GDP { set; get; }
}
}
這是我的字典,其中添加了所有 Country 物件:
Dictionary<string, Country> dictCountries = new Dictionary<string, Country>();
dictCountries.Add("France", new Country("France", "Paris", "Euro", 456));
dictCountries.Add("Germany", new Country("Germany", "Berlin", "Euro", 789));
Console.WriteLine(dictCountries["France"]);
我希望輸出與鍵關聯的所有值。但是,它只輸出 namespace.class 即。SimpleDictionaryProgram.Country
為什么我沒有看到“Paris - Euro - 456”輸出?
謝謝
uj5u.com熱心網友回復:
該類從Country繼承其ToString方法object,該方法僅輸出型別的名稱。您可以覆寫類ToString中的方法Country:
public override string ToString() {
return $"{capital} - {currency} - {gdp}";
}
Console.WriteLine(dictCountries["France"]);
// Outputs "Paris - Euro - 456"
uj5u.com熱心網友回復:
因為所有物件都派生自ToString的類內部函式的基本實作。object
ToString 方法的默認實作回傳 Object 型別的完全限定名稱,如以下示例所示。
按照以下鏈接使用您要列印的內容覆寫該函式: https ://docs.microsoft.com/en-us/dotnet/api/system.object.tostring?view=net-6.0#overriding-the-objecttostring -方法
public override string ToString()
{
return Name ": " Capital ": " Currency ": " GDP;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429012.html
上一篇:將字典用作switch/case陳述句時呼叫函式時遇到問題
下一篇:如何將字典輸出到文本檔案?
