Выражение обозначает "переменную", где ожидалась "группа методов"

public class ItemStack
{
    public int stackSize;
    public int itemID;
    public int itemDamage;

    public ItemStack(Item item)
    {
        this(item.id, 1, 0); //ERROR HERE
    }

    public ItemStack(Item item, int value)
    {
        this(item.id, value, 0); //ERROR HERE
    }

    public ItemStack(Item item, int value, int value2)
    {
        this(item.id, value, value2); //ERROR HERE
    }

    public ItemStack(int value, int value2, int value3)
    {
        this.stackSize = 0;
        this.itemID = value;
        this.stackSize = value2;
        this.itemDamage = value3;

        if (this.itemDamage < 0)
        {
            this.itemDamage = 0;
        }
    }

    private ItemStack()
    {
        this.stackSize = 0;
    }
}

Я не знаю, как это решить, если у вас есть какие-либо идеи, пожалуйста, помогите мне. Спасибо. Я понятия не имею, как это решить, я пробовал разные способы, но ничего. Ошибки расположены там, где вы видите «ОШИБКА ЗДЕСЬ» именно в этих строках.


person Community    schedule 21.07.2015    source источник


Ответы (1)


Вы пытаетесь связать конструкторы, это не то, как вы это делаете. Вам нужно вызвать : this() в объявлении конструктора:

public ItemStack(Item item) : this(item.id, 1, 0)
{
}

public ItemStack(Item item, int value) : this(item.id, value, 0)
{
}

public ItemStack(Item item, int value, int value2) : this(item.id, value, value2)
{
}
person Yuval Itzchakov    schedule 21.07.2015