Ошибка 12 Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство WindowsGame1.Player.BaseStrength - PullRequest
0 голосов
/ 08 января 2011

Я не понимаю, почему это не позволит мне сделать следующее. Кто-нибудь знает, как я могу это сделать?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsGame1
{
    public class Player
    {
        int BaseStrength = 10;
        int BaseIntelligence = 10;
        int BaseDexterity = 10;
        int BaseStamina = 10;
        int BaseSpeed = 10;

        int Damage;
        int SpellDamage;
        int Accuracy;
        int LifePoints;
        int CastingSpeed;

        ***int Damage = (BaseStrength / 2);***

    }
}

Я получаю ошибку:

Ошибка 12 Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство WindowsGame1.Player.BaseStrength

1 Ответ

2 голосов
/ 08 января 2011

Если вы хотите, чтобы урон был значением, рассчитанным на основе других полей, вы должны использовать свойство :

int Damage
{
    get
    {
        return BaseStrength / 2;
    }
}

С другой стороны, если вы хотите использовать обычное поле и установить его один раз при создании экземпляра объекта, вы должны поместить код инициализации в конструктор.

public class Player
{
    int baseStrength = 10;
    int damage;

    public Player()
    {
        damage = baseStrength / 2;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...