Как в инициализаторе ссылаться на поля создаваемого объекта?

Инициализирую объект Player и мне нужно задать поле _startY от другого поля Position, а не получается, подскажите как решить эту проблему, c# введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения

 public class Player : Component
    {
        #region Fields

        public Texture2D _texture;
        public Vector2 Position;
        public bool _jumping;
        public float _startY = 0f;
        public float _jumpspeed = 0f;
         
        #endregion

        #region Methods

        public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(_texture, Position, Color.White);
        }

        public override void Update(GameTime gameTime)
        {
            KeyboardState keyState = Keyboard.GetState();

            if (_jumping)
            {
                Position.X += _jumpspeed;
                _jumpspeed += 1;
                if (Position.Y >= _startY)
                {
                    Position.Y = _startY;
                    _jumping = false;
                }
            }

            else
            {
                if (keyState.IsKeyDown(Keys.W))
                {
                    _jumping = true;
                    _jumpspeed = -14;
                }
            }
        }
}

protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            #region Player

            _player = new Player()
            {
                _texture = Content.Load<Texture2D>("box"),
                Position = new Vector2(400, 450),
                _startY = Position.Y,
                _jumping = false,
                _jumpspeed = 0,
            };
        }

Ответы (1 шт):

Автор решения: CrazyElf

Варианты.
Временная переменная:

var pos = new Vector2(400, 450);

_player = new Player()
{
    _texture = Content.Load<Texture2D>("box"),
    Position = pos,
    _startY = pos.Y,
    _jumping = false,
    _jumpspeed = 0,
};

Инициализация в два этапа:

_player = new Player()
{
    _texture = Content.Load<Texture2D>("box"),
    Position = new Vector2(400, 450),
    _jumping = false,
    _jumpspeed = 0,
};
_player._startY = _player.Position.Y,

Вариант с конструктором мне лениво писать.

→ Ссылка