如何将变量传递给重写的toString()方法?

时间:2012-09-20 02:49:44

标签: c# override tostring

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

4 个答案:

答案 0 :(得分:4)

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

public string ToString(bool status){
  //
}

答案 1 :(得分:2)

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

示例:

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

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

答案 2 :(得分: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可能是某个私有字段并根据某些内部条件更改其值。全取决于你。

答案 3 :(得分:0)

没有。重写方法必须与其覆盖的方法具有相同的签名。这意味着它不能再有任何参数,因为这会改变签名。我只想为你想要的其他格式创建一个新方法。