vb.net - Endif 前面必须有匹配的 if

标签 vb.net if-statement sortedlist

我有一段我写的 vb.net 代码。这是一个带有两个嵌入式 if 语句的 for 循环,编译器告诉我每个 elseif 和 endif 必须以匹配的 if 开头。

这是我使用 vb.net 的第二天,我唯一的编程经验是编写 .bat 文件,所以这可能是一件非常愚蠢的事情。但是我不知道为什么我会收到这些错误,如果你们愿意帮助我,我将不胜感激!

For Each computer In compArray
        If compArray(I) <> Computers.GetKey(I) Then notpresentList.Add(Computers.GetKey(I)) 
Else 
        If Computers.GetByIndex(I) = 0 Then disabledList.Add(Computers.GetKey(I))
        Elseif Computers.GetByIndex(I)=1 Then enabledList.Add(Computers.GetKey(I))
        Elseif Computers.GetByIndex(I)=2 Then unknownList.Add(Computers.GetKey(I))
    End if
    End if
        I += 1
    Next

上下文:我正在尝试编写一段代码来确认 bitlocker 的存在。我在 VBScript 中写了一些东西来检查是否启用了 bitlocker,然后发送电子邮件。这段代码是程序的一部分,该程序将检索这些电子邮件,将它们与计算机列表进行比较,然后生成一个摘要电子邮件,其中说明哪些计算机不存在、启用、禁用了 bitlocker 或处于未知状态。

我确信还有另一种更好的方法可以做到这一点,但正如我所说,我在这方面还很陌生,出于法律原因,我们需要这样做。

再次感谢!

编辑:如果您需要更多信息,请询问我!

最佳答案

您的 If…Then线需要被打破。在 Then 之后移动所有内容到下一行,你应该很好。

If compArray(I) <> Computers.GetKey(I) Then notpresentList.Add(Computers.GetKey(I)) 
If…Then一行上的语句是独立的,后面没有终止 End If ,并且不得使用 ElseIf .

关于vb.net - Endif 前面必须有匹配的 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16988048/

相关文章:

c# - 从 C# 中的变量执行函数

c++ - Visual C++、wchar_t* 命令行参数无法比较?

javascript - 取消 JavaScript 按钮时关闭弹出窗口。

c# - 测试 url 参数的值,然后从 c# 后面的代码更改 SqlDataSource.SelectCommand

c++ - 在调用中使用结构从 vb.net 调用

c# - 确定最大值的有效方法(有或没有偏移)

java - Java.util 包中是否有可索引的排序列表?

java - 删除元素后排序循环链表未更新?

c# - 按名称而不是按索引查找 DataTable 中的列是否会增加开销?

c# - 使用 Aspose 在 .NET 中将 Excel、PowerPoint、PDF 和 Word 转换为图像