自定义类框架/结构

时间:2012-10-26 23:53:15

标签: c# class structure

我想获得以下结构:

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);

但是,每当我声明播放器1时,我得到的唯一选项是本机选项(player1.Equals,player1.GetHashCode,player1.ToString,ect);不是player1.Position.setPos()或其他。

我不知道这叫什么 - 所以如果有人知道我可以在哪里获得更多关于此的信息,这也会有所帮助。

谢谢,

1 个答案:

答案 0 :(得分:4)

你已宣布你的Position课程正常,这就是描述职位的内容。您遗失的是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属性,以便在声明新的setPos之后直接调用Player,如您所说。

注意:为简洁起见,我假设了一份VS2010财产声明。另外,我将Position课程更改为PositionClass,这样你就可以看到示例中的内容 - 你通常不会这样做,虽然你想看看你的namings所以他们不是太混乱了。