当我输入的问题,我可以看到运营商清单列表问题排队。他们大多数都是C++或Haskell。我的问题是针对C#,可以说逻辑可能是一样的。而我的问题是我想了解运算符在C#上下文中的重载。运营商超载的类型
我一直在寻找一个教程,它表明,
DateTime dt1 = new DateTime();
//do some work
DateTime dt2 = new DateTime();
TimeSpan ts = dt2 - dt1;
而且对笔者说,datetime数据类型中的-
利用是最好的运算符重载的例子。我只能看到一个日期被另一个日期所减去,并保存到TimeSpan
对象中。它不使用operator
关键字和static
关键字。
我觉得很难理解。有人可以解释这里发生了什么吗?这是否意味着在ts = dt2 - dt1
之下,会有public static DateTime operator -(DateTime, DateTime)
发生?
更新:
第二个例子:
//some parameterized constructor is here to set X, Y
public static Point operator +(Point p1, Point p2)
{
Point p = New Point();
p.X = p1.X + p2.X;
p.Y = p2.Y + p2.Y;
return p
{
在这种情况下,操作数必须是同一类型的返回类型?使用它时时宣布重载的运算符,而不是
Look [here](http://msdn.microsoft.com/en-us/library/aa288467(v = vs.71).aspx) – 2013-02-27 15:56:07