【发布时间】:2026-01-04 05:25:02
【问题描述】:
是否可以将bool 变量传递给重写的toString() 方法,以便有条件地以不同格式打印对象?
【问题讨论】:
-
你可能想看看
IFormattable。
标签: c# overriding tostring
是否可以将bool 变量传递给重写的toString() 方法,以便有条件地以不同格式打印对象?
【问题讨论】:
IFormattable。
标签: c# overriding tostring
你可以定义ToString()的overload方法。
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 可能是某个私有字段并根据某些内部条件更改其值。全取决于你。
【讨论】:
没有。覆盖方法必须具有与其覆盖的方法相同的签名。这意味着它不能有更多的参数,因为这会改变签名。我会为您想要的其他格式制作一个新方法。
【讨论】: