是否可以将bool
变量传入重写的toString()
方法,以便它可以有条件地以不同的格式打印对象?
答案 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)
没有。重写方法必须与其覆盖的方法具有相同的签名。这意味着它不能再有任何参数,因为这会改变签名。我只想为你想要的其他格式创建一个新方法。