在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);
答案 0 :(得分:1)
Console.WriteLine
调用其参数的虚拟ToString
方法,因此只需覆盖它:
public class Foo {
private Int32 x;
public override String ToString() {
return this.x.ToString();
}
}