public Point getBestPoint() { Point sum = Point.Empty; Point tmp = new Point(12, 12); sum += (Size)tmp; return sum; } Point为什么能够转成Size类型的呢? Point为什么还能加上Size类型的呢?
这和继承没有关系,Point结构重载了加法运算符,而这个运算符的两个操作数分别是Point和Size,可以看下msdn, Point + Size的数学意义就是将点作平移,而Point + Point是没有意义的,所以Point之间的加法。public static Point operator +( Point pt, Size sz )
Point + Size的数学意义就是将点作平移,而Point + Point是没有意义的,所以Point之间的加法。public static Point operator +(
Point pt,
Size sz
)