2

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

我的要求是这个类是由用户扩展的,因此他们不应该与它发生冲突。

谢谢

4

3 回答 3

2

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

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

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

于 2013-01-11T04:53:04.373 回答
1
public virtual void Render(System.Drawing.Graphics g) {}

由于您还创建了一个名为 name 的自定义命名空间,因此您需要指定命名空间Graphics

于 2013-01-11T04:54:02.943 回答
1

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

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

例如:

using DrawingGraphics = System.Drawing.Graphics;

后:

public virtual void Render(DrawingGraphics  g) 
{
}
于 2013-01-11T04:57:59.617 回答