我目前正将我的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
。
我的要求是这个类要由用户扩展,因此它们应该没有冲突。
由于
答案 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)
{
}