2012-06-11 33 views
0

我想将此代码转换为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; 
         } 

究竟是什么,我需要改变?请帮忙。

好,我又变了,但同样的error..it说错误在第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; 
         } 
+1

见user1440922回答以下。此外,一旦你找到考试并设置myExam,你应该打破你的for循环。 – Josh

+1

只需编辑您的原始代码,而不是粘贴在稍有不同的新副本中! – Michael

回答

0

你从代码转换器得到的错误是因为你没有包含在类考试转换,因此转换器错误说“无效的类型声明”第一次遇到未知的类考试

这可能会为你工作:

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 
0

这只是一个猜测,但尝试改变

public Exam GetExamByExamID(int ExamID) 

public Exam GetExamByExamID(int id) 

随着变化

if(exam1.ExamID==ExamID) 

if(exam1.ExamID==id) 
+0

请检查我编辑的答案,并建议..谢谢 – Geeko

1

我想你应该张贴整个类,而不是仅仅是片断的。无论如何,我会先对它进行挖掘。

Exam.ExamID and other Exam.* 

你确定他们引用了一个变量吗?如果您指的是此类别的字段,则应该使用this.ExamID等等

如果不是,这很可能是您的错误。