Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用参数为c的构造函数#_C#_Class_Parameters_Constructor - Fatal编程技术网

C# 使用参数为c的构造函数#

C# 使用参数为c的构造函数#,c#,class,parameters,constructor,C#,Class,Parameters,Constructor,所以,我有一个带有setter和getter以及构造函数的类 namespace Ficha04 { class Personagem { private string nome; private int vida; private int mana; private int estamina; private int moral; private int forca;

所以,我有一个带有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;
        }
    }
}

我得到了这个错误:“没有参数给定,它对应于'personegm.personegm(string,int,int,int,int,int,int)'的必需的形式参数'nome'。我改为nome=textBox\u nome.Text,persona1.nome=textBox\u nome.Text,persona1.nome=textBox\u 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()
{
}

您的类没有默认构造函数,因此您可以使用定义的构造函数并将参数传递给它:

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()
{
}

您是否在文本框中提供了文本?其想法是运行程序,输入文本,并使用文本框中输入的文本创建对象。在“用户”插入一个文本之前,这里没有任何值。对不起,我认为我在这里犯了错误。没有问题,谢谢你。你在文本框中提供了文本吗?想法是运行程序,输入文本,并用文本框中输入的文本创建对象。在“用户”插入一个之前,这里没有任何值。对不起,我认为我在这里犯了错误。没问题,谢谢你。这不是我的Deafolt构造函数吗?“公众人物”(字串名称、字串维达、字串法力、字串estamina、字串道德、字串福卡、字串宗教、字串destreza)?我现在有点迷路了不,这不是默认的构造函数。在.NET中,默认构造函数称为不带任何参数的构造函数。你需要8个参数。默认构造函数如下所示:
公共类Personagem(){}
。因此,如果希望使用类初始值设定项语法,可以删除自定义构造函数或添加默认构造函数。否则,让自定义构造函数获取参数也没关系,您只需要确保在创建类实例时提供这些参数,如我的回答所示。好的,明白了。非常感谢你!这不是我的死亡构装师吗?“公众人物”(字串名称、字串维达、字串法力、字串estamina、字串道德、字串福卡、字串宗教、字串destreza)?我现在有点迷路了不,这不是默认的构造函数。在.NET中,默认构造函数称为不带任何参数的构造函数。你需要8个参数。默认构造函数如下所示:
公共类Personagem(){}
。因此,如果希望使用类初始值设定项语法,可以删除自定义构造函数或添加默认构造函数。否则,让自定义构造函数获取参数也没关系,您只需要确保在创建类实例时提供这些参数,如我的回答所示。好的,明白了。非常感谢你!