输出类实例变量

时间:2014-04-23 21:15:30

标签: c# instances

所以我正在学习实例如何工作以及如何设置它们等等,我想知道是否可以输出实例的变量而不是单独输出它们。

实施例//

class Program
{
    static void Main(string[] args)
    {
        Person Ryan = new Person();
        Ryan.Age = 16;
        Ryan.Name = "Rynoh97";
    }
}
class Person
{
    public int Age = 0;
    public string Name = "";
} 

现在输出我的年龄我需要做Console.WriteLine(Ryan.Age);而我的名字我需要Ryan.Name但是有一种方法可以同时输出它们而不会产生复杂的东西。

我已经尝试了Ryan.ToString(),但我获得了Person课程的位置。

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

您可以在Person类中覆盖ToString,并在调用ToString时将其输出到您希望的位置。

这里有一个例子:

http://msdn.microsoft.com/en-us/library/ms173154.aspx

答案 1 :(得分:2)

除了覆盖ToString之外,您还可以使用String.Format:

string personDescription = String.Format("Name: {0}, Age: {1}", Ryan.Age, Ryan.Name);
Console.WriteLine(personDescription);

Console.WriteLine甚至带有一个重载来为您执行此操作:

Console.WriteLine("Name: {0}, Age: {1}", Ryan.Age, Ryan.Name);

.ToString通常很好,但你只能获得一次覆盖。如果需要多种方式显示“Person”,这种方法更灵活一些。另一方面,当尝试以类似ListBox的方式显示对象时,重写ToString()会变得非常有用。

答案 2 :(得分:0)

您可以覆盖toString方法,使其显示您想要的任何内容。 这样的事情。

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

然后,无论何时调用Ryan.toString()方法,都会显示此方法。希望这可以帮助。