當我輸入的問題,我可以看到運營商清單列表問題排隊。他們大多數都是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