C# 如何解决';预期报表结束';VB'的编译器错误;如果`声明?
我不太擅长VB.net,主要使用C#,我有以下C# 如何解决';预期报表结束';VB'的编译器错误;如果`声明?,c#,vb.net,vb.net-2010,c#-to-vb.net,C#,Vb.net,Vb.net 2010,C# To Vb.net,我不太擅长VB.net,主要使用C#,我有以下foreach循环: Dim pSources() As Integer = {} pSources = SCCC.GetSources(SysCompany, SysUser, ccHeaderId) Try For Each intSelect As Integer In pSources For Each li As ListItem In chkSources.Items If Co
foreach
循环:
Dim pSources() As Integer = {}
pSources = SCCC.GetSources(SysCompany, SysUser, ccHeaderId)
Try
For Each intSelect As Integer In pSources
For Each li As ListItem In chkSources.Items
If Convert.ToInt32(li.Value) Equals(intSelect)
li.Selected = True
End If
Next
Next
Catch ex As Exception
End Try
我想检查整数
的pSources
数组中的每个项目,在复选框列表中找到合适的值,如果值匹配,则选中复选框
根据我现在的代码,我在进行if比较的那一行上出现了错误,这就是错误:
预期报表结束
我怎样才能解决这个问题
或者更好的方法是,如何使用LINQ语句来检查值,然后检查值是否包含在
pSources
数组中的复选框?您的if语句需要在其末尾加一个“then”。网上有一些不错的C#到VB.NET的转换应用程序(如此)--您可以尝试其中的一些,以帮助您熟悉VB.NET。您的IF语句需要在末尾加上一个“THEN”。网上有一些不错的C#到VB.NET的转换应用程序(如此)--您可以尝试其中一些,以帮助您熟悉VB.NET。我看到两个问题:
1) 正如Russ指出的,在If
之后需要一个Then
语句。在VB中,语法是
If <boolean statement> Then
<Some Code>
End If
我看到两个问题: 1) 正如Russ指出的,在
If
之后需要一个Then
语句。在VB中,语法是
If <boolean statement> Then
<Some Code>
End If
这是我自己要做的 下面的代码检查以确保
pSources
是某种东西,并且其中包含某种东西。Integer.TryParse
如果无法解析,则不会引发异常,并且在尝试进行比较之前会短路
Dim pSources As New List(Of Integer)
Dim intNumber As Integer = 0
pSources = SCCC.GetSources(SysCompany, SysUser, ccHeaderId)
Try
If pSources IsNot Nothing AndAlso pSources.Count > 0 Then
For Each intSelect In pSources
For Each li As ListItem In chkSources.Items
If Integer.TryParse(li.Value.ToString, intNumber) AndAlso (intNumber = intSelect) Then
li.Selected = True
End If
Next
Next
End If
Catch ex As Exception
'Handle your exception...
End Try
这是我自己要做的 下面的代码检查以确保
pSources
是某种东西,并且其中包含某种东西。Integer.TryParse
如果无法解析,则不会引发异常,并且在尝试进行比较之前会短路
Dim pSources As New List(Of Integer)
Dim intNumber As Integer = 0
pSources = SCCC.GetSources(SysCompany, SysUser, ccHeaderId)
Try
If pSources IsNot Nothing AndAlso pSources.Count > 0 Then
For Each intSelect In pSources
For Each li As ListItem In chkSources.Items
If Integer.TryParse(li.Value.ToString, intNumber) AndAlso (intNumber = intSelect) Then
li.Selected = True
End If
Next
Next
End If
Catch ex As Exception
'Handle your exception...
End Try
这:
这:
您确实应该查看代码的格式,并尝试以正确的方式设置嵌套的for循环的格式。这意味着语句的匹配结尾在哪里。这在视觉上非常明显。您不需要
然后使用If
,为什么要在那里使用try/catch?如果您在sub中,那么end sub在哪里。。?这是一个很好的教程,你可以看看,我也建议你看看如何格式化你的例程函数等等。这将有助于解释这些对象是什么和后真实代码。什么是列表项?这是Winforms吗?在VB.NET中有很多谜团,你可以使用=
来检查是否相等。你真的应该检查代码的格式,并尝试以正确的方式设置嵌套循环的格式。意思是语句的匹配端在哪里。这在视觉上很明显。你不需要然后和If
,为什么要在那里试一试呢?如果你在潜水艇上,终点在哪里。。?这是一个很好的教程,你可以看看,我也建议你看看如何格式化你的例程函数等等。这将有助于解释这些对象是什么和后真实代码。什么是列表项?这是Winforms吗?在VB.NET中有很多谜团,您可以使用=
来检查是否相等。p源
可能什么都不是,在尝试使用该对象之前应该进行检查。您不需要显式地说为整数
因为pSources
是一个整数数组
不需要它,因为在不需要时再次强制转换它Convert.ToInt32
如果不是整数,将抛出异常。。。只是一些建议…我提出的解决方案只是修改了询问者的原始代码,而不是我将如何处理它。另外,pSources不能是Nothing
,因为它是用{}
初始化的,并且还会再次设置下一行。如果调用SCCC.GetSources(SysCompany,SysUser,ccHeaderId)
不返回任何内容,kaboom!你不能总是依赖函数来返回某些东西……公平地说,它仍然是不相关的,因为这不是问题的真正重点。pSources
可能什么都不是,在尝试使用对象之前应该检查它。您不需要显式地说为整数
因为pSources
是一个整数数组
不需要它,因为在不需要时再次强制转换它Convert.ToInt32
如果不是整数,将抛出异常。。。只是一些建议…我提出的解决方案只是修改了询问者的原始代码,而不是我将如何处理它。另外,pSources不能是Nothing
,因为它是用{}
初始化的,并且还会再次设置下一行。如果调用SCCC.GetSources(SysCompany,SysUser,ccHeaderId)
不返回任何内容,kaboom!你不能总是依赖函数来返回一些东西……公平地说,这仍然是不相关的,因为这不是问题的真正重点。我喜欢.TryParse
后跟和also(谓词)
的单行语法。很好的构造。我喜欢.TryParse
的一行语法,后跟和also(谓词)
。构造不错。