gpt4 book ai didi

c# - 找不到扩展方法?

转载 作者:行者123 更新时间:2023-11-30 22:58:19 25 4
gpt4 key购买 nike

所以在环顾四周并尝试自己解决这个问题之后,我被困住了。我查看了以下帖子并确保我已经包括了他们所说的所有程序集(我在来这里之前已经完成了,但仔细检查以确保):

在仔细检查了我的具有扩展名的文件和试图使用该扩展名的文件之后;还有其他可能的原因导致找不到扩展方法吗?

// 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));
}
}
}

注意事项

代码中的任何拼写错误在这里都是实际的拼写错误,而不是代码本身。


更新

作为@Brian Rasmussen在评论中指出,我没有从被扩展对象的实例中调用该方法。我还没有喝咖啡,所以很抱歉,至少这是一个简单的解决方法!

SpriteBatch sb = new SpriteBatch(...);
sb.PointToNDC(...); // <- Works.

最佳答案

要调用 PointToNDC 作为扩展方法,您需要一个 SpriteBatch 实例。

关于c# - 找不到扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com