Adam Ответов: 2

C#, используя переменную для имени нового объекта


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
    public class Student
    {

        public static int Count = 0;

        public int ID   { get; set; }
        public string Name { get; set; }

        Dictionary<int, Student> students = new Dictionary<int, Student>();

        public Student (string name, int id)
        {
            Name = name;
            ID = id;
        }

        public static void addStudent()
        {

            Student.Count++; // incrementing value for new student id.

            Console.Write("Please enter student's name: "); // grabbing input from user.
            string studentName = Console.ReadLine();

            Console.WriteLine("Student ID value: {0}", Student.Count); // for testing.
            int studentID = Student.Count;

             /* Student (studentName) = new Student (studentName, studentID) -- The issue is with this line*/
             Student added = new Student(studentName, studentID) // using this as a temp for now.
             {
                Name = studentName,
                ID = studentID
             };

        
        }


    }
}


Что я уже пробовал:

Я чувствую, что перепробовала все.

Причина, по которой я хочу использовать переменную, заключается в том, что студенты будут добавлены из меню в Main.

Вероятно, было бы более разумно использовать статическую переменную Count (в этом классе) для имени объекта.

Несмотря на это, мне все равно нужно было бы использовать переменную.

Любая помощь будет очень признательна.

2 Ответов

Рейтинг:
2

Dave Kreskowiak

Я понятия не имею, о чем ты говоришь, "переменная"? Похоже, вы уже используете его для установки свойства Name нового объекта Student, но я не уверен. Я не совсем понимаю, что вы имеете в виду, когда говорите "имя объекта".

Я думать то, что вы ищете, это:

Student added = new Student(studentName, studentID);

или
Student added = new Student()
{
    Name = studentName,
    ID = studentID
};


Рейтинг:
2

Jinto Jacob

я не понимаю, зачем вам нужна переменная ...

если вам нужно добавить студента и получить его на основе имени студента, вы можете сделать это с помощью словаря.

ictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("student1", 1);
dict.Add("student2", 2);
dict.Add("student3", 3);
dict.Add("student4", 4);


и может искать студентов на основе ключа
dict.ContainsKey("student1")
и извлекать значения на основе ключа (который является именем студента)

dict["student1"].ToString ());


я думаю, что это может сработать для вас...