C# 使用参数为c的构造函数#
所以,我有一个带有setter和getter以及构造函数的类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;
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(){}
。因此,如果希望使用类初始值设定项语法,可以删除自定义构造函数或添加默认构造函数。否则,让自定义构造函数获取参数也没关系,您只需要确保在创建类实例时提供这些参数,如我的回答所示。好的,明白了。非常感谢你!