使用命名空间作为类型错误

本文关键字:类型 错误 命名空间 | 更新日期: 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) 
{
}