繁体   English   中英

如何在C#中重载Console.WriteLine()方法?

[英]How do you overload the Console.WriteLine() method in C#?

在C ++中,我可以执行以下操作:

Class foo(){
    int x;        
    friend ostream& operator<<(ostream& os, const Date& dt);
    ...
};

ostream& operator<<(ostream& os, const foo& f)
{
    os << f.x;
    return os;
}

int main(){
    Foo foo1, foo2, foo3;
    std::cout << foo1 << foo2 << foo3;
    return 0;
}

可以在C#中做类似的事情吗? 我是否必须将其添加为类函数(foo.print());

例如:

Foo foo;
Console.WriteLine(foo);

Console.WriteLine调用其参数的虚拟ToString方法,因此只需重写它即可:

public class Foo {
    private Int32 x;
    public override String ToString() {
        return this.x.ToString();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM