【发布时间】:2016-03-12 12:28:52
【问题描述】:
我正在尝试使用 foreach 循环在主范围内打印列表中的对象元素,但唯一打印出来的是:
ConsoleApplication1.WorldMap
这里出了什么问题,如何让它打印出实际的元素?
using ConsoleApplication1;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class WorldMap
{
private string higher;
private string lower;
public worldMap()
{
}
public WorldMap(string higher, string lower)
{
this.higher = higher;
this.lower = lower;
}
public string Higher
{
get { return higher; }
set { higher = value; }
}
public string Lower
{
get { return Lower; }
set { Lower = value; }
}
}
class Program
{
static void Main(string[] args)
{
WorldMap map = new WorldMap();
List<WorldMap> mapList = new List<WorldMap>();
mapList.Add(new WorldMap(map.Lower, map.Higher));
Console.WriteLine("\tInsert highest point:");
map.Highest= Console.ReadLine();
Console.WriteLine("\tInsert lowest point");
map.Lowest= Console.ReadLine();
using (StreamWriter writer = new StreamWriter(@"C:\freq.txt", true))
{
writer.WriteLine(map.Lower + map.Higher);
}
foreach (object view in mapList)
{
Console.WriteLine(view);
}
}
}
}
【问题讨论】:
-
是的,非常感谢您的回答!控制台中没有显示任何内容,但我会再次检查您的答案。
-
你也知道为什么控制台什么都没有出现吗?因为在这一行
mapList.Add(new WorldMap(map.Lower, map.Higher));map.Lower和map.Higher是空字符串,你应该为构造函数发送一个值,如下所示:mapList.Add(new WorldMap("lower", "higher"));。 -
现在可以使用了,谢谢!使用 override 并通过 writeline 调用 main 中的对象。在普通环境中,哪一种更可取?更进一步……
-
我更喜欢
override。 -
所以有两个选项,1 个输出,Console.WriteLine(map.ToString());使用以下有什么区别吗? (map.Lower, map.Higher));或 mapList.Add(new WorldMap("lower", "higher")); : mapList.Add(new WorldMap("lower", "higher"));.