是否可以将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   回答