对于大多数人(熟练的程序员)来说,这个标题听起来可能不太好,但我已经进入学习 C# 基础知识的第三周了,我不知道如何解决下一个任务。
我将存储一些城市的温度,首先询问用户城市名称,然后询问该城市的实际温度。所有这些东西都应该保存在列表中,我将使用类和构造函数。
当我尝试打印结果(使用 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();
}
}
您正在将对象传递给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);
}
}
或者你可以使用另一个重载WriteLine
method:
Console.WriteLine("{0} {1}", item.CityName, item.Temperature);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)