是否可以将bool
变量传递给重写的toString()
方法,以便它可以有条件地以不同格式打印对象?
问问题
3412 次
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 回答