我想获得以下结构:
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()或其他。
我不知道这叫什么 - 所以如果有人知道我可以在哪里获得更多关于此的信息,这也会有所帮助。
谢谢,
答案 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所以他们不是太混乱了。