所以我正在学习实例如何工作以及如何设置它们等等,我想知道是否可以输出实例的变量而不是单独输出它们。
实施例//
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
课程的位置。
有什么建议吗?
答案 0 :(得分:5)
您可以在Person类中覆盖ToString,并在调用ToString时将其输出到您希望的位置。
这里有一个例子:
答案 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()方法,都会显示此方法。希望这可以帮助。