Jar*_*Par 22
使用冒号组合语句没有任何内在错误.它实际上取决于上下文,但只要不降低可读性,就没有任何问题.
作为一般规则,我为此避免使用冒号.我发现每行有一个语句更具可读性.然而,这不是结肠特定问题.我避免在C#或C++中使用分号进行相同的操作.这只是个人偏好.
Sma*_*oli 20
这是一个适度的好习惯,因为有时可读性通过连接两行来增强:
当线条短而琐碎
Option Compare Database: Option Explicit ''My favorite!
rsDataSet.Close: Set rsDataSet= Nothing
Run Code Online (Sandbox Code Playgroud)不要这样做:
If...Then需要保持清洁.在设定断点时,你会很高兴你保持简单. Ang*_*ker 11
一般来说,我建议反对它,因为它会使代码变得更加繁忙.
但是,对于简单的任务,它没有任何问题.例如:
for i = 1 to 10: ProcessFoo(i): next
Run Code Online (Sandbox Code Playgroud)
我认为像这样的一条线很短,不会引起混淆.
我会接受另一面.我不喜欢密集的代码行.当没有组合线时,更容易浏览代码.
组合语句还可以更轻松地创建仍然适合单个屏幕的长函数.
这不是一个大罪,我只是不喜欢它.
我也不喜欢一行if语句.
对我来说,你不应该说"从不这样做",你应该说"如果你这样做,可能的问题是这样的." 然后只为自己权衡利弊.专家简洁/几行代码.有时这有助于提高可读性.例如,有些人用它来做vb.Net声明:
Dim x As Long: x = 1
Run Code Online (Sandbox Code Playgroud)
或等待循环:
Do Until IE.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
Run Code Online (Sandbox Code Playgroud)
但显然你也可以对某人做些粗暴的事情:
Public Sub DoYouKnowWhatThisDoes()
MsgBox Example
End Sub
Private Function Example()
Const s$ = "078243185105164060193114247147243200250160004134202029132090174000215255134164128142"
Const w% = 3: Const l% = 42: Dim i%, r$: For i = 1 To l Step w: r = r & ChrW$(Mid$(s, i, w) Xor Mid$(s, i + l, w)): Next: Example = r
End Function
Run Code Online (Sandbox Code Playgroud)
您可能不想使用此方法的另一个实际原因是断点.断点只能由该行设置.所以,如果你在同一条线上执行了几件事,你就无法隔离第二件事.它将在第一个声明中停止.(这也是一些人不喜欢单行ifs的原因之一.)这只会使调试变得复杂一点.
出于这个原因,我通常不会在生产代码中使用冒号.但是,我确实使用它们来改善我在论坛和其他地方发布的"复制/粘贴"代码的简洁性.因人而异:)
我意识到这是一个非常古老的问题,但这是我在谷歌搜索中的第一个结果,所以我希望我可以原谅这里的鸣叫.
有一种情况(这正是我实际上在这里引起的),这种方法不仅有用,它是实现所需结果的唯一方法:立即窗口.您想要在立即窗口中执行的任何代码都必须在一行上.因此,为了在立即窗口中使用任何形式的Do,Case,For,While或With,您将需要使用冒号.
| 归档时间: |
|
| 查看次数: |
38670 次 |
| 最近记录: |