C#XNA - '游戏'是一个'命名空间',但用于'类型'

C#XNA - '游戏'是一个'命名空间',但用于'类型'

问题描述:

我不明白如何解决这个问题,我想改变'游戏'呢?C#XNA - '游戏'是一个'命名空间',但用于'类型'

namespace Game { 

    public class Help : Microsoft.Xna.Framework.GameComponent 
    { 
     public Help(Game game): base(game) 
     { 
      // TODO: Construct any child components here 
     } 

     public override void Initialize() 
     { 
      // TODO: Add your initialization code here 

      base.Initialize(); 
     } 

     public override void Update(GameTime gameTime) 
     { 
      // TODO: Add your update code here 

      base.Update(gameTime); 
     } 
    } 
} 

命名空间 '游戏' 重命名为类似MikesGame:

namespace MikesGame { 

    public class Help : Microsoft.Xna.Framework.GameComponent 
    { 
     public Help(Game game): base(game) 
     { 
      // TODO: Construct any child components here 
     } 

     public override void Initialize() 
     { 
      // TODO: Add your initialization code here 

      base.Initialize(); 
     } 

     public override void Update(GameTime gameTime) 
     { 
      // TODO: Add your update code here 

      base.Update(gameTime); 
     } 
    } 
} 
+1

但是,如果我这样做,我得到这个错误:无法找到类型或命名空间名称'MyGame'(你是否缺少使用指令或程序集引用?) – mike 2010-10-26 14:13:42

+2

@Mike:你做错了什么。 @ Den的代码与“MyGame”没有任何关系 – abatishchev 2010-10-26 14:16:58

你叫你的名字空间 “游戏”,其与内置的XNA类型,Game碰撞。将Game更改为Microsoft.Xna.Framework.Game将您的名称空间重命名为其他名称。

游戏就是你的命名空间,就像错误所暗示的一样。

namespace Game { 

你试图在也被称为游戏

public Help(Game game) 

你要么需要改变你的命名空间是其他东西比你的对象名称,或完全如果您符合条件的对象“游戏”的目的在于传递在名为Game的另一个名称空间下有一个对象。例如

public Help(AnotherNamespace.Game game) 

我认为你的问题是Game命名空间,因为它与Game对象类型相同,编译器无法区分它们。更改名称空间的名称。

如果您打算使用您的名称空间Game,那么对于每次要使用Microsoft.Xna.Framework.Game类的情况,都需要指定完整的名称空间Microsoft.Xna.Framework