C# 如何从用户的类创建对象?
我已经创建了一个类“Person”,我想做一个while循环,让用户添加对象,直到他们想停止为止,但它不起作用 我想问题是我不知道如何从列表中创建新对象,但我不确定 这是我的密码:C# 如何从用户的类创建对象?,c#,C#,我已经创建了一个类“Person”,我想做一个while循环,让用户添加对象,直到他们想停止为止,但它不起作用 我想问题是我不知道如何从列表中创建新对象,但我不确定 这是我的密码: static void Afficher(List <Personne> maliste) { foreach (var per in maliste) { per.ToString(); } } static void Ajouter(List<Perso
static void Afficher(List <Personne> maliste)
{
foreach (var per in maliste)
{
per.ToString();
}
}
static void Ajouter(List<Personne> maliste)
{
string s;
bool stop = false;
int i = 0;
while(!stop)
{
Console.WriteLine("Entrez les informations ou entrez pour terminez!!");
Console.WriteLine("Entrez le nom de la personne numero "+ (i+1));
s = Console.ReadLine();
if (s == "") break;
maliste[i] = new Personne();
maliste[i].nom = s;
Console.WriteLine("Entrez le prenom de la personne numero " + (i + 1));
s = Console.ReadLine();
if (s == "") break;
maliste[i].prenom = s;
Console.WriteLine("Entrez l'age de la personne numero " + (i + 1));
s = Console.ReadLine();
if (s == "") break;
maliste[i].age = int.Parse(s);
i++;
}
}
static void Afficher(列表maliste)
{
foreach(在maliste的每个变量)
{
per.ToString();
}
}
静态无效AJAOUTER(列表maliste)
{
字符串s;
bool-stop=false;
int i=0;
当(!停止)
{
Console.WriteLine(“Entrez les informations ou Entrez pour terminez!!”;
控制台写入线(“个人编号”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
maliste[i]=新员工();
maliste[i].nom=s;
Console.WriteLine(“个人数字企业”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
maliste[i].prenom=s;
Console.WriteLine(“个人数字中心”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
maliste[i].age=int.Parse(s);
i++;
}
}
maliste[i]=newpersonne()上发生错误代码>行:
ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小
添加新项时,不能使用数组索引(如maliste[i]
)。您只需调用maliste.Add
即可在列表中插入新项。您的函数应该如下所示:
static void Ajouter(List<Personne> maliste)
{
string s;
bool stop = false;
int i = 0;
while(!stop)
{
Console.WriteLine("Entrez les informations ou entrez pour terminez!!");
Console.WriteLine("Entrez le nom de la personne numero "+ (i+1));
s = Console.ReadLine();
if (s == "") break;
var pers = new Personne();
maliste.Add( pers );
pers.nom = s;
Console.WriteLine("Entrez le prenom de la personne numero " + (i + 1));
s = Console.ReadLine();
if (s == "") break;
pers.prenom = s;
Console.WriteLine("Entrez l'age de la personne numero " + (i + 1));
s = Console.ReadLine();
if (s == "") break;
pers.age = int.Parse(s);
i++;
}
}
static void Ajouter(列出maliste)
{
字符串s;
bool-stop=false;
int i=0;
当(!停止)
{
Console.WriteLine(“Entrez les informations ou Entrez pour terminez!!”;
控制台写入线(“个人编号”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
var pers=新员工();
maliste.Add(pers);
pers.nom=s;
Console.WriteLine(“个人数字企业”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
pers.prenom=s;
Console.WriteLine(“个人数字中心”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
pers.age=int.Parse(s);
i++;
}
}
添加新项时,不能使用数组索引(如maliste[i]
)。您只需调用maliste.Add
即可在列表中插入新项。您的函数应该如下所示:
static void Ajouter(List<Personne> maliste)
{
string s;
bool stop = false;
int i = 0;
while(!stop)
{
Console.WriteLine("Entrez les informations ou entrez pour terminez!!");
Console.WriteLine("Entrez le nom de la personne numero "+ (i+1));
s = Console.ReadLine();
if (s == "") break;
var pers = new Personne();
maliste.Add( pers );
pers.nom = s;
Console.WriteLine("Entrez le prenom de la personne numero " + (i + 1));
s = Console.ReadLine();
if (s == "") break;
pers.prenom = s;
Console.WriteLine("Entrez l'age de la personne numero " + (i + 1));
s = Console.ReadLine();
if (s == "") break;
pers.age = int.Parse(s);
i++;
}
}
static void Ajouter(列出maliste)
{
字符串s;
bool-stop=false;
int i=0;
当(!停止)
{
Console.WriteLine(“Entrez les informations ou Entrez pour terminez!!”;
控制台写入线(“个人编号”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
var pers=新员工();
maliste.Add(pers);
pers.nom=s;
Console.WriteLine(“个人数字企业”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
pers.prenom=s;
Console.WriteLine(“个人数字中心”+(i+1));
s=Console.ReadLine();
如果(s==“”)中断;
pers.age=int.Parse(s);
i++;
}
}
基于您希望将stop
设置为true以跳出循环的某个地方。您还需要更加清楚地说明不起作用@makeStackOverflowGood再次不,如果检查,他们会在几次格式错误的中中断,所以一切都很好(while(true)
会更好,但是…)在某个地方,您需要将stop
设置为true以打破循环。您还需要更加清楚地说明不起作用@makeStackOverflowGood再次不,如果检查,他们会在几次格式错误的中中断,所以一切都很好(while(true)
会更好,但是…)