WriteLine avec une classe

Je suis en train de créer un programme SchoolApp pour en savoir plus sur C # et j’ai cette fonction principale que j’essaie de faire fonctionner:

namespace SchoolApp { class Program { public static void Main(ssortingng[] args) { School sch = new School("Local School"); sch.AddStudent(new Student { Name = "James", Age = 22 }); // this function sch.AddStudent(new Student { Name = "Jane", Age = 23 }); Console.WriteLine(sch); // this implementation } } } 

Classe d’école:

 namespace SchoolApp { class School { public ssortingng name; public School() { } public School(ssortingng the_name) { name = the_name; } public void AddStudent(Student student) { } } } 

Classe étudiante: namespace SchoolApp

 { class Student { public int Age; public ssortingng Name; public Student() { Age = 0; Name = "NONAME"; } public ssortingng _name { get { return this.Name; } set { Name = value; } } public int _age { get { return this.Age; } set { Age = value; } } } } 

Je suis nouveau sur C # et je ne sais trop comment préparer AddStudent ni comment utiliser WriteLine pour écrire la classe. Le résultat devrait être le suivant:

École: École locale James, 22 ans Jane, 23 ans

Quelqu’un a suggéré d’utiliser List . Je rencontre le même problème de ne pas en savoir assez à ce sujet.

EDIT: Merci à tous pour vos réponses extrêmement rapides. Je le fais fonctionner et je vais maintenant lire les réponses en profondeur pour ne plus avoir à poser de questions connexes!

Dans votre classe d’ School , il semble que vous souhaitiez avoir une liste privée d’étudiants. La liste est simple, elle prend un type générique, dans votre cas Student et vous pouvez append et supprimer des éléments.

Dans votre classe, utilisez:

  private List students; 

Et dans votre code AddStudent, vous pouvez simplement utiliser:

 students.Add(student); // student is the variable being passed in and students is the list. NOTE: You will have to make sure students is intalized to a new List of Student. students = new List(); 

Jetez un coup d’œil aux liens suivants. MSDN est la documentation appropriée, mais dotnetperls convient à des tâches simples comme celle-ci.

http://msdn.microsoft.com/en-gb/library/3wcytfd1.aspx

http://www.dotnetperls.com/list-add

Quelqu’un a suggéré d’utiliser List<> Je rencontre le même problème de ne pas en savoir assez à ce sujet.

Oui, la classe List convient à cette situation. Il a une méthode .Add qui vous permet d’append des objects. Vous pouvez ensuite parcourir les éléments de cette liste (à l’aide d’une instruction foreach ), puis imprimer les détails de chaque élément sur la console à l’aide de la méthode Console.WriteLine.

 class School { public ssortingng name; private List students = new List(); public School() { } public School(ssortingng the_name) { name = the_name; } public void AddStudent(Student student) { students.Add(student); } public override ssortingng ToSsortingng() { var sb = new SsortingngBuilder(); sb.AppendLine(name); foreach (var student in students) { sb.AppendLine(student.ToSsortingng()); } return sb.ToSsortingng(); } } class Student { ... public override ssortingng ToSsortingng() { return "Student : " + Name + ", " + Age; } } 

Console.WriteLine(t) effectue une conversion implicite de t en chaîne. Vous devez donc redéfinir ToSsortingng() pour toutes vos classes ou créer explicitement une chaîne à partir de votre classe.

Exemple:

 class School { public ssortingng name; List Students = new List(); ... public override ssortingng ToSsortingng() { var ssortingngValue = name; foreach(var student in Students) { ssortingngValue += student.ToSsortingng(); } return ssortingngValue; } } class Student { public int Age; public ssortingng Name; ... public override ssortingng ToSsortingng() { return ssortingng.Format("{0} {1}", Name, Age); } } 

Vous pouvez écrire une méthode d’extension “WriteStudent” dans la classe Console et accepter student en tant que paramètre. Dans la méthode, vous pouvez utiliser Console.Write("School: " +objParameter.Name)

vous avez 2 options de base:

  1. append un atsortingbut “école” (variable) à chaque élève
  2. d’append un atsortingbut “liste des étudiants” à chaque école.

si vous préférez la deuxième méthode:

vous devez append une nouvelle variable à la classe d’école:

  List student_list = new List(); 

et pour append un étudiant, définissez:

  public void AddStudent(Student student) { student_list.Add(student); } 

Notez également que si vous souhaitez que l’impression soit dans un ordre spécifique, vous devez append la méthode ToSsortingng () dans les classes d’élève et d’école.

espérons que cela aide, bonne chance.

Tout d’abord, vous avez besoin d’un conteneur pour stocker les instances de la classe Student dans la classe School . Ensuite, dans votre méthode AddStudent , vous ajoutez simplement l’étudiant à votre collection à l’aide de la méthode exposée par la classe List elle-même:

 class School { public ssortingng name; private List students = new List(); // ... public void AddStudent(Student student) { students.Add(student); } } 

Voici une référence à la classe List .

En ce qui concerne la sortie, vous pouvez écrire une fonction dans la classe School pour afficher les étudiants:

 public void Print() { Console.WriteLine(name); foreach (Student s in students) Console.WriteLine(s.Name + ", " + s.Age); } 

Et utilisez-le dans votre Main simplement comme:

 sch.Print(); 

Outre la List qui doit être membre de School , ajoutée avec une boucle ( foreach ) dans votre méthode principale pour les imprimer, vous devez également consulter les éléments suivants:

Tout ce qui précède parce que vous avez dit que vous êtes nouvelle, je pensais donc pouvoir vous donner quelques indications.

On dirait que vous voulez append une School avec un Students correspondant

 public class Student { public ssortingng StudentName { get; set; } public int Age { get; set; } } public class School : Student { public ssortingng SchoolName { get; set; } } 

 List school = new List(); school.Add(new School() { SchoolName = "USA", StudentName = "har", Age = 25 }); school.Add(new School() { SchoolName = "USM", StudentName = "japz", Age = 25 }); foreach (var item in school) { Console.WriteLine("School Name: {0} Name: {1} Age: {2} ", item.SchoolName, item.StudentName, item.Age); }