Что не так с этим фрагментом кода? Это дает мне ошибку объявления типа

Я пытаюсь преобразовать этот код в VB, но он дает мне эту ошибку.

ОШИБКА КОНВЕРСИИ: Код не может быть преобразован. Подробности:

- строка 1 столбец 8: недействительный TypeDecl

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

  public Exam GetExamByExamID(int ExamID)
                {
             Exam myExam = new Exam(0,"",0,"","");  
              for(Exam exam1 : ExamArray)
            if(Exam.ExamID==ExamID)
              {
                 myExam.ExamID = exam1.ExamID;
                 myExam.ExamTitle = exam1.ExamTitle;
                     myExam.CreditHours = exam1.CreditHours;
                     myExam.Description = exam1.Description;
                         myExam.PrerequisiteExam = exam1.PrerequisiteExam;

              }
                  return myExam;

Я изменил свой код на это, но это все та же ошибка..

public Exam GetExamByExamID(int ExamID)
                    {
                 Exam myExam = new Exam(0,"",0,"","");  
                  for(Exam exam1 : ExamArray)
                if(Exam.ExamID==ExamID)
                  {
                     myExam.ExamID = exam1.ExamID;
                     myExam.ExamTitle = exam1.ExamTitle;
                         myExam.CreditHours = exam1.CreditHours;
                         myExam.Description = exam1.Description;
                             myExam.PrerequisiteExam = exam1.PrerequisiteExam;

                  }
                      return myExam;
                       }

Что именно мне нужно изменить? Пожалуйста помоги.

хорошо, я изменился снова, но та же ошибка.. это говорит об ошибке в строке 1..

public Exam GetExamByExamID(int ExamID)
                    {
                 Exam myExam = new Exam(0,"",0,"","");  
                  for(Exam exam1 : ExamArray)
                if(exam1.ExamID==ExamID)
                  {
                     myExam.ExamID = exam1.ExamID;
                     myExam.ExamTitle = exam1.ExamTitle;
                         myExam.CreditHours = exam1.CreditHours;
                         myExam.Description = exam1.Description;
                             myExam.PrerequisiteExam = exam1.PrerequisiteExam;

                  }
                      return myExam;
                       }

3 ответа

Решение

Ошибка, которую вы получаете от преобразователя кода, заключается в том, что вы не включили класс Exam для преобразования, поэтому ошибка преобразователя говорит "Недопустимое объявление типа" при первом обнаружении неизвестного класса Exam.

это может работать для вас:

 Public Function GetExamByExamID(ExamID As Integer) As Exam
    Dim myExam As New Exam(0, "", 0, "", "")
    For Each exam1 As exam In ExamArray
        If exam1.ExamID = ExamID Then
            With myExam
                .ExamID = exam1.ExamID
                .ExamTitle = exam1.ExamTitle
                .CreditHours = exam1.CreditHours
                .Description = exam1.Description
                .PrerequisiteExam = exam1.PrerequisiteExam
            End With
            Return myExam
        End If
    Next
    Return Nothing
End Function

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

Exam.ExamID and other Exam.* 

Вы уверены, что они ссылаются на переменную? Если вы ссылаетесь на поля этого класса, вы должны использовать this.ExamID и так далее

Если нет, то это скорее всего ваша ошибка.

Это всего лишь предположение, но попробуйте изменить

public Exam GetExamByExamID(int ExamID)

в

public Exam GetExamByExamID(int id)

наряду с изменением

if(exam1.ExamID==ExamID)

в

if(exam1.ExamID==id)
Другие вопросы по тегам