我创建了两个具有类似名称(但不相同)类型的参数的重载方法,它们的声明如下所示:
public static RectangleNineSides GetRectangleSide(System.Drawing.Rectangle rect, System.Drawing.Point p)
public static RectangleNineSides GetRectangleSide(Microsoft.Xna.Framework.Rectangle rect, Microsoft.Xna.Framework.Point p)
如您所见,两种方法的参数不同,但是当像这样调用其中一种时:
h.RectangleNineSides side = h.GetRectangleSide(new Microsoft.Xna.Framework.Rectangle(), new Microsoft.Xna.Framework.Point());
在我的 XNA 项目中,我收到一条错误消息:
“System.Drawing.Point”类型是在未引用的程序集中定义的。您必须添加对程序集 'System.Drawing, Version=4.0.0.0, blah-blah' 的引用
但是,如果在当前项目的任何地方都没有调用另一个方法,为什么编译器会关心它呢?
任何 WinForms 项目中都会出现类似的错误,但 XNA 的类型除外。我什至明确写了Rectangle
我Point
正在谈论的内容,但我仍然收到此错误。我究竟做错了什么?是否不可能有重载方法而不会出现这种错误?我应该改变他们的名字吗?