3

是否可以将bool变量传递给重写的toString()方法,以便它可以有条件地以不同格式打印对象?

4

4 回答 4

4

您可以定义的重载方法ToString()

public string ToString(bool status){
  //
}
于 2012-09-20T02:51:58.890 回答
2

参数化 ToString() 的典型模式是使用字符串参数声明重载。

例子:

class Foo
{
    public string ToString(string format)
    {
        //change behavior based on format
    }
}

有关框架示例,请参见 Guid.ToString

于 2012-09-20T02:55:34.407 回答
1

如果您正在谈论自己的课程,则可以执行以下操作:

public class MyClass
{
    public bool Flag { get; set; }

    public MyClass()
    {
        Flag = false;
    }

    public override string ToString()
    {
        if (Flag)
        {
            return "Ok";
        }
        else
        {
            return "Bad";
        }
    }
}

并使用它

MyClass c = new MyClass();
Console.WriteLine(c); //Bad
c.Flag = true;
Console.WriteLine(c); //Ok
Console.ReadLine();

Flag可能是一些私有字段并根据某些内部条件更改其值。全取决于你。

于 2012-09-20T03:13:30.333 回答
0

否。覆盖方法必须具有与其覆盖的方法相同的签名。这意味着它不能有更多的参数,因为这会改变签名。我只想为您想要的其他格式制作一种新方法。

于 2012-09-20T02:52:10.503 回答