簡體   English   中英

在參數C#中使用構造函數

[英]Using constructor with parameters c#

因此,我有帶有setter和getter和構造函數的此類。

namespace Ficha04
{
    class Personagem
    {
        private string nome;
        private int vida;
        private int mana;
        private int estamina;
        private int moral;
        private int forca;
        private int inteligencia;
        private int destreza;

        public string Nome
        {
            get
            {
                return nome;
            }

            set
            {
                if (value.Length > 0)
                {
                    nome = value;
                }
            }
        }

        public int Vida
        {
            get
            {
                return vida;
            }

            set
            {
                if (value < 0)
                {
                    vida = 0;
                }
                else
                {
                    vida = value;
                }
            }
        }

        public int Mana
        {
            get
            {
                return mana;
            }

            set
            {
                if (value < 0)
                {
                    mana = 0;
                }
                else
                {
                    mana = value;
                }

            }
        }

        public int Estamina
        {
            get
            {
                return estamina;
            }

            set
            {
                if (value < 0)
                {
                    estamina = 0;
                }
                else
                {
                    estamina = value;
                }
            }
        }

        public int Moral
        {
            get
            {
                return moral;
            }

            set
            {
                moral = value;
            }
        }

        public int Forca
        {
            get
            {
                return forca;
            }

            set
            {
                if (value < 10)
                {
                    value = 10;
                }
                else
                {
                    forca = value;
                }
            }
        }

        public int Inteligencia
        {
            get
            {
                return inteligencia;
            }

            set
            {
                if (value < 25)
                {
                    value = 25;
                }
                else
                {
                    inteligencia = value;
                }
            }
        }

        public int Destreza
        {
            get
            {
                return destreza;
            }

            set
            {
                if (value < 10)
                {
                    value = 10;
                }
                else
                {
                    destreza = value;
                }
            }
        }

        public Personagem(string nome, int vida, int mana, int estamina, int moral, int forca, int inteligencia, int destreza)
        {
            Nome = nome;
            Vida = vida;
            Mana = mana;
            Estamina = estamina;
            Moral = moral;
            Forca = forca;
            Inteligencia = inteligencia;
            Destreza = destreza;
        }
    }
}

我試圖從此類創建對象:

private void btnInsere_Personagem_Click(object sender, EventArgs e)
{

    Personagem persona1 = new Personagem()
    {
        Nome = textBox_Nome.Text,
        Vida = Convert.ToInt32(upDown_Vida.Value),
        Mana = Convert.ToInt32(upDown_Mana.Value),
        Estamina = Convert.ToInt32(upDown_Estamina.Value),
        Moral = Convert.ToInt32(upDown_Moral.Value),
        Forca = Convert.ToInt32(upDown_Forca.Value),
        Inteligencia = Convert.ToInt32(upDown_Inteligencia.Value),
        Destreza = Convert.ToInt32(upDown_Destreza.Value),
    };
}

我得到這個錯誤:“沒有給定的參數對應於'Personagem.Personagem(string,int,int,int,int,int,int,int)'所需的形式參數'nome''”。 我改為nome = textBox_Nome.Text,persona1。Nome= textBox_Nome.Text,persona1.nome = textBox_Nome.Text,...,但我仍然無法使其正常工作。 我想念什么? 對不起,我是C#的新手。

您的類沒有默認的構造函數,因此可以使用定義的構造函數並將參數傳遞給它:

Personagem persona1 = new Personagem(
    textBox_Nome.Text,
    Convert.ToInt32(upDown_Vida.Value),
    Convert.ToInt32(upDown_Mana.Value),
    Convert.ToInt32(upDown_Estamina.Value),
    Convert.ToInt32(upDown_Moral.Value),
    Convert.ToInt32(upDown_Forca.Value),
    Convert.ToInt32(upDown_Inteligencia.Value),
    Convert.ToInt32(upDown_Destreza.Value)
);

或者,如果要使用屬性初始化程序語法,則可以為類定義默認的構造函數:

public Personagem()
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM