Console.WriteLine重载不写所有参数

时间:2014-06-26 02:58:32

标签: c#

另一个需要找出c#的上下文问题 所以我创建了一个带有重载方法的类,现在我想WriteLine所有的方法。不确定这是否有意义,这就是我在这里的原因。

我希望WriteLine打印出新测试。

// this is the class with the method overload
public Test(string make, string model, int year, string colour)
{
    Make = make;
    Model = model;
    Year = year;
    Colour = colour;
}

// this is what I called
Test myTest = new Test("chev", "ava", 2002, "blue");
Console.WriteLine(myTest);

2 个答案:

答案 0 :(得分:4)

您必须覆盖类中的ToString()才能返回格式正确的字符串。 ToString()的默认实现只返回类的名称。

http://msdn.microsoft.com/en-us/library/ms173154(v=vs.80).aspx

把它放在你的班级

  public override string ToString() 
  {
     return string.Format("{0} {1} {2} {3}",Make,Model,Year,Colour);
  }

答案 1 :(得分:0)

首先,您已重写Constructor,而不是类方法。其次,如果要打印类成员的所有值(传递给构造函数),则必须编写自己的覆盖ToString方法。您可以按照要显示的方式格式化输出:

public override string ToString()
{
       var output = string.Format("The Car Model is {0} {1} which is made in year {2}, color {3}",Model,Make,Year,Colour);
       return output;

}