如何将变量传递给重写的toString()方法?
是否可以将bool
变量传入重写的toString()
方法,因此它可以有条件地以不同的格式打印对象?
您可以定义ToString()
重载方法。
public string ToString(bool status){ // }
参数化ToString()的典型模式是使用字符串参数声明重载。
例:
class Foo { public string ToString(string format) { //change behavior based on format } }
有关框架示例,请参阅Guid.ToString
如果您正在谈论自己的课程,您可以执行以下操作:
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
可能是一些私人领域,并根据一些内部条件改变其价值。 全取决于你。
不可以。重写方法必须与其覆盖的方法具有相同的签名。 这意味着它不能再有任何参数,因为这会改变签名。 我想为你想要的其他格式创建一个新方法。