Я создал два метода защиты от перегрузки с аналогичными именами (но не такими же) типами параметров, и их заявление выглядит следующим образом:Как разрешить ошибку с одинаково названными типами в параметрах метода?
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, бла-бла»
Но почему уход компилятор о другом методе, если он даже не вызывается в любом месте в текущем проекте ?
Аналогичная ошибка появляется в любом проекте WinForms, но для типов XNA. Я даже прямо писал, что Rectangle
и Point
Я говорю, и я до сих пор получаю эту ошибку. Что я делаю не так? Невозможно ли перегружать методы без получения такой ошибки? Должен ли я просто изменить их имена?
Просто потому, что этот метод не вызывается .. не означает, что он не находится в финальной сборке. Окончательной сборке нужны метаданные .. так что в случае непредвиденных событий другая сборка называет ее через отражение. Она знает о каждом типе вызываемого абонента (среди прочего). –
Итак, я не должен смешивать их в классе помощника? – user1306322