我有这个代码,我想打印对象Persona
。
该项目被称为testOggetti
。
static void Main(string[] args)
{
Persona p = new Persona("nome1", "cognome1", 18);
Persona p2 = new Persona("nome2", "cognome2", 14);
List<Persona> listaPersone = new List<Persona>();
listaPersone.Add(p);
listaPersone.Add(p2);
foreach(var item in listaPersone)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
但是当我尝试打印时,结果是:
testOggetti.Persona
有人能告诉我原因吗?
有人能告诉我原因吗?
由于(testOggetti.Persona)
方法的默认实现,您将获得打印对象Object.ToString
的类型名称,该方法返回对象类型的完全限定名称。
每个对象都继承自C#中的Object,因此.ToString()
默认情况下会执行Console.WriteLine(item);
。
只需覆盖.ToString()
类中的Persona
,如:
public override string ToString()
{
return string.Format("Persona: {0}, {1}, {2}", Nome, Cognome, Number);
// Where Nome, Cognome and Number are variables in Persona class
}
这是因为对象上的默认.ToString()
实现打印出当前类的名称。
只需覆盖Persona类中的ToString():
public override string ToString()
{
return "Person: " + Name + " " + Age;
}
有关更多信息,请参阅here。