Так что после некоторого осмотра и попытки самостоятельно решить эту проблему, я застрял. Я просмотрел следующие посты и убедился, что я включил все сборки, как они заявили (что я сделал до приезда сюда, но дважды проверил, чтобы убедиться):
После двойной проверки моего файла с расширением и файла, пытающегося использовать расширение; Существуют ли другие возможные причины, по которым метод расширения не найден?
// Extension Class.
using SharpDX;
using SharpDX.Direct2D1;
namespace MyNamespace.Engine {
public static class Utilities {
public static Vector3 PointToNDC(this SpriteBatch sb, Size2 screenSize, Point p) {
float x = 2.0f * p.X / screenSize.Width - 1.0f;
float y = 1.0f - 2.0f * p.Y / screenSize.Height;
return new Vector3(x, y, 0);
}
}
}
// Usage Class.
using MyNamespace.Engine;
using SharpDX;
using SharpDX.Direct2D1;
namespace MyNamespace.Prefabs {
public class Sprite {
public void Draw() {
SpriteBatch.PointToNDC(new Size2(50, 50), new Point(0, 0));
}
}
}
Примечание
Любые опечатки в коде являются здесь реальными опечатками, а не в самом коде.
Обновление
Как указал Брайан Расмуссен *1033* в комментариях, я не вызывал метод из экземпляра расширяемого объекта. У меня еще не было кофе, поэтому мои извинения, по крайней мере, это было простое исправление!
SpriteBatch sb = new SpriteBatch(...);
sb.PointToNDC(...); // <- Works.