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 等);不是 player1.Position.setPos() 之类的。

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

谢谢,

4

1 回答 1

4

你已经宣布你的Position班级没问题,这就是描述职位的内容。你缺少的是你Player班级的一个属性 - 即说 aPlayer可以有一个职位:

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在声明 new 后直接调用,Player正如您所说的那样。

注意:为简洁起见,我假设了一个 VS2010 属性声明。另外,我将您的Position课程更改为被称为PositionClass,只是为了让您可以看到示例中的内容-您通常不会这样做,尽管您想查看您的命名,以免它们太混乱。

于 2012-10-26T23:58:54.460 回答