Класс, включающий список

#c# #list #class #object #properties

#c# #Список #класс #объект #свойства

Вопрос:

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

 public class exam {  public string Name { get; set; }  public string Age { get; set; }  public string RollNo { get; set; }   public Listlt;Subjectgt; subject{get; set;}  }    public class Subject  {  public string SubjectName{ get; set;}  public string SubjectPartNo{ get; set; }   }    exam ex = new exam()   ex.Name = "john"  ex.Age = 22  ex.RollNo = 13  ex.subject.SubjectName = "English"  ex.subject.SubjectPartNo = 1      

Комментарии:

1. Вы декларируете свою subject собственность. Но вы никогда не создаете его. Измените объявление на Listlt;Subjectgt; subject{get; set;} = new Listlt;Subjectgt;(); . О, подождите, вы не можете этого сделать: ex.subject.SubjectName = "English" ; subject свойство-это список. Вам нужно создать новый Subject и добавить его в список

2. Я объявляю новый список Listlt;subjectgt; sub = новый списокlt;subjectgt;lt;subjectgt;() и sub . Добавить(новый субъект() { SubjectName= «Английский», SubjectPartNo = «буксировка» }); затем я хочу прикрепиться к классу ex.subject = sub , вот в чем проблема

Ответ №1:

subject это объект, который определяется как список типов Subject . Как и любой другой объект, он должен быть сначала создан, прежде чем его можно будет использовать. Тот факт, что он находится внутри Exam (другого объекта), этого не меняет.

Таким образом, вы можете сделать это либо во время присвоения собственности, как это.

 public Listlt;Subjectgt; subject { get; set; } = new Listlt;Subjectgt;();  

или вы можете создать конструктор и создать его экземпляр там

 public exam() {  subject = new Listlt;Subjectgt;(); }  

Итак, теперь у вас есть пустой список, это первая часть решенной проблемы. Но вы все еще пытаетесь неправильно присвоить ему значения.

subject это список Subject , так что это означает, что мы можем добавлять в него только Subject объекты.

Сначала создайте новый объект субъекта и добавьте к нему значения. (также может быть сделано встроенным). Здесь мы создаем два;

 Subject sub1 = new Subject(); sub1.SubjectName = "English"; sub1.SubjectPartNo = "1";  Subject sub2 = new Subject(); sub2.SubjectName = "Maths"; sub2.SubjectPartNo = "2";  

Затем добавьте их в свой список;

 exam ex = new exam();  ex.Name = "john" ex.Age = "22"; ex.RollNo = "13"; ex.subject.Add(sub1); ex.subject.Add(sub2);  

Теперь у вас есть exam объект с 2 Subjects

Кстати: У вас есть много свойств, таких как возраст, которые определяются как строка, но вы пытаетесь добавить к ним целочисленные значения. Они должны быть правильно определены в соответствии с правильным типом данных. Не просто устанавливайте все в строку, потому что сейчас это «проще», это вызовет у вас проблемы позже.

Комментарии:

1. Спасибо за ваш ответ . Есть ли какой-либо другой способ сделать это, я должен использовать цикл для добавления предметов, таких как 2, 4 или 10