2012-10-26 83 views
1

我试图得到以下结构:自定义类框架/结构

Game.Player.Position.setPos(X,Y,Z) 

这是什么框架我到目前为止有:

public partial class Game 
{ 
    public class Player 
    { 
     private class Position 
     { 
      public float setPos(float X, float Y, float Z) 
      { 
       //this code not included 
      } 
     } 
    } 
} 

这不正是给我我想要的。我想获得如下:

Player player1 = new Player(); 
player1.Position.setPos(player1_X, player1_Y, player1_Z); 

但是,每当我宣布player1-我得到的唯一选择本民族的(player1.Equals,player1.GetHashCode,player1.ToString,ECT)不是player1.Position.setPos()或其他。

我不知道这是什么called-所以如果有人知道我在哪里可以得到更多这方面的信息,这也将有助于一堆。

感谢,

回答

4

你宣布你的Position类OK,这是描述的位置是什么。什么你缺少的是对你Player类的属性 - 说,一个Player可以有一个位置,即:

public partial class Game 
{ 
    public class Player 
    { 
     public class PositionClass 
     { 
      public float setPos(float X, float Y, float Z) 
      { 
       //this code not included 
      } 
     } 

     public PositionClass Position {get; set;} 

     public Player() { 
      Position = new PositionClass(); 
     } 
    } 
} 

另一件事是,你需要有Position类作为Public,为你的财产是要暴露在Player课程的范围之外。

最后,您需要在构造函数中实例化您的Position属性,以便您可以在声明新的Player之后直接调用setPos,正如您已经声明的那样。

注:我已经承担了VS2010财产申报为简洁。另外,我改变了你Position类被称为PositionClass,只是让你可以看到什么是什么的例子 - 你通常不会这么做,但你要因此他们不是太混乱看你namings。

+0

@ArpyClarkson不要忘记创建位置属性;) – Silvermind

+0

@Silvermind:参见构造。 –

+0

对不起,我评论时一定错过了。 – Silvermind