Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解决';预期报表结束';VB'的编译器错误;如果`声明?_C#_Vb.net_Vb.net 2010_C# To Vb.net - Fatal编程技术网

C# 如何解决';预期报表结束';VB'的编译器错误;如果`声明?

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

我不太擅长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 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(谓词)
。构造不错。