对于大多数人(熟练的程序员)来说,标题听起来不太好,但我正在学习C#基础知识的第3周,我无法弄清楚如何解决下一个任务.我将为一堆城市存储一些温度,首先向用户询问cityName,然后询问该城市的实际温度.所有这些东西都应保存在列表<>中,我将使用Class和Constructor.当我尝试打印出结果(使用foreach)时,它打印出我的命名空间的名称和我的类的名称,如"Task_5.City"我的代码错误:
public class City //class
{
public string CityName { get; set; }
public int Temperature { get; set; }
public City(string name, int temp)//konstruktor
{
this.CityName = name;
this.Temperature = temp;
}
}
class Program
{
static void Main(string[] args)
{
var cityList = new List<City>();
Console.WriteLine("What is your city?");
string cityName = Console.ReadLine();
Console.WriteLine("What temperature for this city?");
int temp = Convert.ToInt32(Console.ReadLine());
City myCity = new City(cityName, temp);
cityList.Add(myCity);
foreach (var item in cityList)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
您将对象传递给Console.WriteLine(item)而不是传递字符串.Console.WriteLine调用ToString()该对象的方法,默认情况下返回名称空间+类名.您可以像下一样覆盖此行为:
public class City //class
{
public string CityName { get; set; }
public int Temperature { get; set; }
public City(string name, int temp)//konstruktor
{
this.CityName = name;
this.Temperature = temp;
}
public override string ToString()
{
return string.Format("{0} {1}", CityName, Temperature);
}
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用另一种重载WriteLine方法:
Console.WriteLine("{0} {1}", item.CityName, item.Temperature);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |