¿Qué tiene de malo este fragmento de código? Me está dando error de declaración de tipo

Estoy tratando de convertir este código en VB pero me está dando este error.

ERROR DE CONVERSIÓN: No se pudo convertir el código. Detalles:

-- línea 1 columna 8: TypeDecl no válido

Compruebe si hay errores en el código original y vuelva a intentarlo.

  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;

Cambié mi código a este pero sigue siendo el mismo error.

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;
                       }

¿Qué necesito cambiar exactamente? Por favor ayuda.

ok, cambié de nuevo pero el mismo error... dice error en la línea 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;
                       }

preguntado el 11 de junio de 12 a las 19:06

Consulte la respuesta user1440922 a continuación. Además, debe romper su bucle for una vez que encuentre el examen y configure myExam. -

¡Simplemente edite su código original en lugar de pegar una nueva copia que sea ligeramente diferente! -

3 Respuestas

Creo que deberías publicar toda la clase en lugar de solo el fragmento. De todos modos, tendré la primera excavación en él.

Exam.ExamID and other Exam.* 

¿Estás seguro de que se refieren a una variable? Si se refiere a campos de esta clase, debe usar this.ExamID y así

Si no es así, lo más probable es que sea tu error.

Respondido el 11 de junio de 12 a las 19:06

El error que obtiene del convertidor de código se debe a que no ha incluido la clase Auditoria para convertirse, por lo que el error del convertidor dice "Declaración de tipo no válida" la primera vez que encuentra la clase desconocida Auditoria.

esto podría funcionar para usted:

 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

Respondido el 11 de junio de 12 a las 20:06

Esto es solo una suposición, pero intente cambiar

public Exam GetExamByExamID(int ExamID)

a

public Exam GetExamByExamID(int id)

junto con el cambio

if(exam1.ExamID==ExamID)

a

if(exam1.ExamID==id)

Respondido el 11 de junio de 12 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.