最佳实践:在这种情况下我应该使用String.Format吗?

时间:2014-06-12 11:38:51

标签: vb.net string-formatting

我有以下代码行:

Dim s As String = _wv.ExecuteJavascriptWithResult("document.links[" & i.ToString() & "].innerHtml;").ToString

现在我已经安装了DevExpress CodeRush,它告诉我我应该使用

Dim s As String = _wv.ExecuteJavascriptWithResult(String.Format("document.links[{0}].innerHTML;", i)).ToString

但是,我觉得String.Format版本的可读性低于第一行。

使用StringFormat时是否有任何指导原则? 我希望我的代码能够专业且易于阅读。

谢谢!

2 个答案:

答案 0 :(得分:1)

我看着这一点,并说由于在一行中发生了太多事情,这是不可读的。

我通常更喜欢string.Format("{0}{1}...", x, y)任何类型的显式连接,原因有两个:

  • 可以轻松识别/定义字符串的常量。在这种情况下,一些访问链接的内部html。 (对此的扩展是识别大型嵌套单双qoute案例)
  • String.Format可能会隐式处理转化,具体取决于类型。

我将您的代码改为多行,如下所示:

Dim jsToExecute as String = String.Format("document.links[{0}].innerHTML;", i)
Dim jsResult = _wv.ExecuteJavascriptWithResult(jsToExecute)
Dim innerHtml as String = jsResult.ToString()

答案 1 :(得分:0)

我同意Jono的评论,认为它在一行中发生了太多的事情而且Gary的评论认为它只是不太可读,因为它不太熟悉。

因此,您应该熟悉这两种方法,但我认为您不应该让任何其他人根据“最佳实践”的声明来决定您正在做什么。无论如何,可读性是一个主观的东西。

我的个人规则是在有2个或更多项目时使用String.Format。我也将此作为String的扩展方法,因为这是我喜欢的方式。

不要接受任何人"最佳实践"除非你有充分的理由要遵守他们的规则。