这段代码有什么问题?它给我类型声明错误

时间:2012-06-11 18:41:54

标签: c# vb.net code-conversion

我正在尝试将此代码转换为VB,但它给了我这个错误。

CONVERSION ERROR:代码无法转换。详细说明:

- 第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 个答案:

答案 0 :(得分:1)

我认为你应该发布整个课程而不仅仅是片段。无论如何,我将第一次挖掘它。

Exam.ExamID and other Exam.* 

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

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

答案 1 :(得分:0)

这只是猜测,但尝试更改

public Exam GetExamByExamID(int ExamID)

public Exam GetExamByExamID(int id)

随着改变

if(exam1.ExamID==ExamID)

if(exam1.ExamID==id)

答案 2 :(得分: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