使用namespace作为类型错误

时间:2013-01-11 04:50:40

标签: c# namespaces drawing

我目前正将我的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

我的要求是这个类要由用户扩展,因此它们应该没有冲突。

由于

3 个答案:

答案 0 :(得分:2)

您可以使用命名空间访问您的类:

public virtual void Render(System.Drawing.Graphics g) { }

由于命名空间和Graphics类的名称存在冲突,因此您可以考虑将命名空间命名为不同,或者始终使用fully quilified名称。

答案 1 :(得分:1)

public virtual void Render(System.Drawing.Graphics g) {}

您需要指定命名空间,因为您还要创建名称为Graphics的自定义命名空间。

答案 2 :(得分:1)

避免创建可能与标准命名空间冲突的命名空间。 在您的情况下,您应该完全使用System.Drawing.Graphics名称,以避免与GECS.Graphics冲突。

另一个解决方案可能是using指令,用于为命名空间或类型创建别名。

例如:

using DrawingGraphics = System.Drawing.Graphics;

后:

public virtual void Render(DrawingGraphics  g) 
{
}