使用命名空间作为类型错误
本文关键字:类型 错误 命名空间 | 更新日期: 2023-09-27 17:52:37
我目前正在将我的java游戏引擎翻译成c#。在我开始编写包com.gej.graphics
之前,一切都很好。在c#中,我是这样写的。
namespace GECS.Graphics {}
但编译器说这个错误。
'GECS.Graphics' is a 'namespace' but is used like a 'type' (CS0118)
- C:'Users'sr....ECS'Core'Game.cs:33,36
这是行包含的文本
public virtual void Render(Graphics g) {}
实际的Graphics
类来自System.Drawing
。
我的要求是这个类是由用户扩展的,因此他们应该和它没有冲突
感谢
您可以访问命名空间为的类
public virtual void Render(System.Drawing.Graphics g) { }
由于名称空间和Graphics
类的名称存在冲突,您可以考虑将名称空间命名为不同的名称空间,也可以始终使用完全平衡的名称。
public virtual void Render(System.Drawing.Graphics g) {}
您需要指定名称空间,因为您还创建了一个名称名称为Graphics
的自定义名称空间。
避免创建可能与标准名称空间冲突的名称空间。在您的情况下,您应该完全使用System.Drawing.Graphics
名称,以避免与GECS.Graphics
发生冲突。
另一种解决方案可能是使用指令为命名空间或类型创建别名。
例如:
using DrawingGraphics = System.Drawing.Graphics;
之后:
public virtual void Render(DrawingGraphics g)
{
}