打印对象C#

问题描述 投票:-1回答:2

我有这个代码,我想打印对象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

有人能告诉我原因吗?

c# list
2个回答
4
投票

有人能告诉我原因吗?

由于(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
}

1
投票

这是因为对象上的默认.ToString()实现打印出当前类的名称。

只需覆盖Persona类中的ToString():

public override string ToString()
{
    return "Person: " + Name + " " + Age;
}

有关更多信息,请参阅here

© www.soinside.com 2019 - 2024. All rights reserved.