[英]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.