如果这是在某处记录的话我很抱歉,我无法以这种特定方式使用下划线找到答案(如果不是,AndAlso语句).
这是我不明白的
If Not variable Is Nothing _
AndAlso Not Results.Tables.Count = 0 _
AndAlso Not Results.Tables(0).Rows.Count = 0 Then
Run Code Online (Sandbox Code Playgroud)
如果我在此代码中删除了下划线,VB2017会自动Then在第一行代码的末尾放置一个,并且在使用它们的两行上我得到2个AndAlso的语法错误.有人可以解释为什么会这样吗?我在StackOverflow上读到编译器不关心下划线,我也读过MSDN的AndAlso文档,我有点困惑.
谢谢您的帮助.
我在StackOverflow上读到编译器不关心下划线
那不是真的.隐式行继续是Visual Basic语言1的最新成员.它们涵盖了许多但并非所有场景,其中_曾经需要线路延续角色.
这是链接文档的完整列表:
- 逗号后(
,).- 在打开括号(
()之后或在右括号())之前.- 在打开大括号(
{)之后或在大括号()之前}.- 在打开嵌入式表达式(
<%=)之后或在%>XML文本中嵌入式表达式()关闭之前.- 连接运算符(
&)之后.例如:- 赋值运算符后(
=,&=,:=,+=,-=,*=,/=,\=,^=,<<=,>>=).- 后的二进制运算符(
+,-,/,*,Mod,<>,<,>,<=,>=,^,>>,<<,And,2,,,,的表达式内).AndAlsoOrOrElseLikeXor- 经营者
Is和之后IsNot.- 在成员限定符之后的字符(
.)和成员名称之前.
这表明我们可以安全地在之后 AndAlso而不是之前添加行:
If Not variable Is Nothing AndAlso
Not Results.Tables.Count = 0 AndAlso
Not Results.Tables(0).Rows.Count = 0 Then
Run Code Online (Sandbox Code Playgroud)
我还建议重写如下,因为VB.Net做了奇怪的事情Not,使用它作为按位而不是逻辑运算符3:
If variable IsNot Nothing AndAlso
Results.Tables.Count > 0 AndAlso
Results.Tables(0).Rows.Count > 0 Then
Run Code Online (Sandbox Code Playgroud)
1.好了,2010年,但我还是发现很多VB开发者不知道谁做他们,或了解他们,但从来没有检查规则,要么避开他们或让编译器告诉他们何时添加一个.
2.强调我的.
另外,我发现没有否定就更容易阅读.