对于大多数人(熟练的程序员)来说,标题听起来不太好,但我正在学习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(); }}解决方法 您正在将对象传递给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方法的另一个重载:
Console.Writeline("{0} {1}",item.Cityname,item.Temperature);总结
以上是内存溢出为你收集整理的c# – 为什么写项目到控制台只写命名空间和类名而不是数据?全部内容,希望文章能够帮你解决c# – 为什么写项目到控制台只写命名空间和类名而不是数据?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)