2017-11-03 7 views
-4

プロパティを持つオブジェクト全体を追加し、main関数の中でメソッドを呼び出すことは可能ですか?メソッドを追加する

下記のリストを使用して、アクション3を実行する必要があります。しかし、私はまた入れたくないList<Student> st = new List<Student>(); WriteToFile()AddStudent()の両方例えば

、私はそのリストを持っている:

static void Main(string[] args) 
    { 
     List<Student> st = new List<Student>(); 
     Student st1 = new Student(1, "Mike", "Freelancer", 9); 
     st1.CalculateSalary(); 
     Student st2 = new Student(2, "Bob", "CEO", 7); 
     st2.CalculateSalary(); 
     Student st3 = new Student(3, "Tina", "CEO", 3); 
     st3.CalculateSalary(); 

     do 
     { 
      Console.WriteLine("============================"); 
      Console.WriteLine("1. Write To File"); 
      Console.WriteLine("2. Read From File"); 
      Console.WriteLine("3. Add Student"); 
      Console.WriteLine("============================"); 
      answer = Convert.ToInt32(Console.ReadLine()); 

      switch (answer) 
      { 
       case 1: 
        WriteToFile(filePath); 
        Console.WriteLine("File Created!"); 
        break; 
       case 2: 
        ReadFromFile(filePath); 
        break; 
       case 3: 
        Console.WriteLine("Add Student"); 
        break; 
      } 
     } while (answer != 4); 
    } 

すべてのヘルプははるかに高く評価されます。

+0

なぜこの質問はC++とは関係がないのでしょうか? –

+0

別のSOの意味は? – Kaloyan

+0

なぜあなたは 'WriteToFile()'または 'AddStudent()'に 'List st = new List ();'を入れたのですか? 1つの方法は、おそらく既存の生徒データをファイルに書き込み、もう1つは新しい生徒をリストに追加します。あなたの質問は意味をなさない。 –

答えて

1

もちろん、あなたができることは、生徒のリストを取り込み、その生徒の情報をユーザから収集し、新しい生徒をリストに追加するメソッドを作成することです。また、渡されたリストがnullの場合は、リストを初期化する必要があります。

私はあなたの学生のプロパティのいくつかを推測しています。 Studentクラスに合わせて変更することができます。あなたのMain方法の初めに、あなたはあなたのリストにハードコーディングされた学生を追加したことがないことを

case 3: 
    AddStudent(st); 
    break; 

注:

/// <summary> 
/// Gets student information from the user and adds a new student to the list 
/// </summary> 
/// <param name="existingStudents">The list of students to add to</param> 
private static void AddStudent(List<Student> existingStudents) 
{ 
    // Initialize the list if it's null 
    if (existingStudents == null) existingStudents = new List<Student>(); 

    int tempInt; 

    // Get student information from the user 
    Console.WriteLine("Enter new student information"); 

    do 
    { 
     Console.Write(" 1. Enter student Id: "); 
    } while (!int.TryParse(Console.ReadLine(), out tempInt)); 
    var id = tempInt; 

    Console.Write(" 2. Enter student Name: "); 
    var name = Console.ReadLine(); 

    Console.Write(" 3. Enter student Job Title: "); 
    var jobTitle = Console.ReadLine(); 

    do 
    { 
     Console.Write(" 4. Enter student years of service: "); 
    } while (!int.TryParse(Console.ReadLine(), out tempInt)); 
    var yrsOfService = tempInt; 

    // Add the new student to the list 
    existingStudents.Add(new Student(id, name, jobTitle, yrsOfService)); 
} 

次に、あなただけのようなあなたのmainメソッドからこれを呼び出すことができます。生徒を作成した後、次のようなものを追加することができます:

st.Add(st1); 
st.Add(st2); 
st.Add(st3); 
+0

ありがとうございます。もう一つ質問があります。私はファイルから要素を読み込み、ファイルのデータをリストに埋め込むために自動的に読み込んだりしたいと思います。私はそれを試みたが動作しませんでした:public static void showStudents(List existingStudents、string filePath) { ReadFromFile(filePath); foreach(既存のスタッドの学生スタッド) { //既存のスタッド.Add(新しいスタッド。スタッド。スタッド。スタッド。スタジオスタッド。スタンド.Internship)); Console.WriteLine(stud.ToString()); } } – Kaloyan

+0

ここにReadFromFile関数があります:public static void ReadFromFile(string filePath) { StreamReader reader = new StreamReader(filePath); while(!reader.EndOfStream) { Console.WriteLine(reader.ReadLine()); } reader.Close(); } – Kaloyan

+0

ありがとう。別に投稿します。 – Kaloyan

関連する問題