【问题标题】:What is wrong with this code snippet? Its giving me type declaration error这个代码片段有什么问题?它给了我类型声明错误
【发布时间】:2012-06-11 18:41:53
【问题描述】:

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

转换错误:无法转换代码。详情:

-- line 1 col 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;
                       }

【问题讨论】:

  • 请参阅下面的 user1440922 答案。此外,一旦找到考试并设置 myExam,您应该打破 for 循环。
  • 只需编辑您的原始代码,而不是粘贴到略有不同的新副本中!

标签: c# vb.net code-conversion


【解决方案1】:

我认为您应该发布整个课程,而不仅仅是 sn-p。无论如何,我会先挖掘它。

Exam.ExamID and other Exam.* 

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

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

【讨论】:

    【解决方案2】:

    您从代码转换器得到的错误是因为您没有包含要转换的类 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
    

    【讨论】:

      【解决方案3】:

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

      public Exam GetExamByExamID(int ExamID)
      

      public Exam GetExamByExamID(int id)
      

      随着变化

      if(exam1.ExamID==ExamID)
      

      if(exam1.ExamID==id)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-12
        • 2014-11-10
        • 1970-01-01
        • 2012-08-04
        • 1970-01-01
        • 2022-06-10
        • 1970-01-01
        • 2014-04-11
        相关资源
        最近更新 更多