Len()函数vs String.Length属性; 哪个可供选择?

Ala*_*n K 14 vb.net string string-length vb6-migration

我正在从VB6过渡到VB.Net(VS 2010),对后者有一个基本的而不是广泛的理解.我显然有相当多的代码...我犹豫使用"升级"这个词当"端口"更容易,因为在以前版本的VS中的升级向导可能刚刚注释掉代码并说"嘿,你为什么不从头开始重新开始?"

我在Len()函数中使用的一个过程用于确定字符串变量的长度.这仍然适用于VB.Net(虽然我想它实际上是对Strings.Len方法的调用),但另一种选择是只查询.Length变量的属性.

问题是使用哪个以及为什么.我查看了相关的MSDN页面,他们似乎告诉我的是方法/属性存在.没有任何关于性能问题的说法,特别是涉及大量呼叫的循环时.

那么,我的问题是,是否有人知道使用一种方法而不是另一种方法的任何测试和确认的好处,或者它是否仅仅是个人偏好的问题.关于类似情况的任何指示,我可能会遇到类似的情况,虽然根据Stack Overflow指南,这只是一个问题,我有兴趣看看是否有特定的答案.

Mar*_*urd 18

因为你使用VB.NET,你Strings可以Nothing,除非你明确检查的时候,多数VB的方法,其中包括Len,会将其一样的String.Empty,即"".

随着反射,你可以看到Len被实现为空检查,返回0Nothing否则返回.Length,和抖动将可能在网上呼叫.

所以,如果你正在使用其他VB方法,我建议也使用它Len,除非你知道String不是Nothing或在Nothing任何地方检查.

  • +1实际上知道VB的一些东西! (2认同)

sew*_*gle 6

所以根据这个:

Len,另一个经典的BASIC函数,返回字符串的长度.System.String具有提供相同信息的Length属性.这个比那个好吗?

在性能方面,这两个函数在1000次迭代中几乎没有差别.在这种情况下似乎没有任何理由偏爱另一个,加上没有功能差异.我更倾向于使用属性值而不是VB函数,因为它鼓励将.NET字符串视为对象.然而,在核心,它实际上只是个人偏好的事情.

如果你相信他们的话,那就是你的答案.否则,编写测试和迭代应该给你最终的答案.