2013-01-11 15 views
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文本。

我的要求是,這個類是由用戶擴展,因此他們應該沒有衝突。

感謝

+3

所以,儘量說'System.Drawing.Graphics g'。 –

回答

2

您可以用命名空間訪問類爲:

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

因爲在你的命名空間和Graphics類的名字有衝突,你可以考慮命名您的命名空間不同,或者你總是可以使用fully quilified的名稱。

+0

謝謝。決定將命名空間的名稱更改爲'GraphicsUtil' –

+0

@SriHarshaChilakapati,歡迎您,這可能是一個更好的解決方案,然後使用完全限定的名稱 – Habib

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

由於您還創建了名稱爲Graphics的自定義名稱空間,所以您需要指定名稱空間。

1

避免創建可能與標準命名空間衝突的命名空間。 我的你的情況,你應該完全使用System.Drawing.Graphics名稱,以避免與GECS.Graphics衝突。

另一種解決方案可能是using指令爲命名空間或類型創建別名。

例如:

using DrawingGraphics = System.Drawing.Graphics; 

後:

public virtual void Render(DrawingGraphics g) 
{ 
} 
相關問題