应该是什么写代码的最佳方式:

1)

Dim current = Request.Path
current = current.Remove(0, 1)
current = current.Replace(".aspx", "")

2)

Dim current = Request.Path.Remove(0, 1).Replace(".aspx", "")

3)

Dim current = Request.Path
Dim current2 = current.Remove(0, 1)
Dim current3 = current.Replace(".aspx", "")

或者1-2没有什么区别?

有帮助吗?

解决方案

这些都是相同的。尝试

Path.GetFileNameWithoutExtension(Request.Path)

其他提示

所有这三个基本相同。

记住的字符串是不可变的。每次调用的方法上的字符串时,它分配一个新的字符串对象,所以调用Remove()创建一个新对象,然后将其用于调用Replace()

1&2基本上是相同的。 #3是一个有点不同,因为你用3个独立的变量,所以你持有到引用这些字符串,使他们能够在以后使用。垃圾收集器应该知道做什么用的所有3个例子并做处理它们大致一样的,但是,无论你存储中间的字符串作为变量或没有。

我会用#2,只是因为这是更少的代码,并且不sacrafice可读性,但它仍然是一个代码相当短一点。

这些呼叫可以抛出异常。对于玩具的代码也没关系不检查,但是,你得到的路径后,你应该检查对String.NullOrEmpty和长度打电话之前删除。所以,这就是为什么我会避免#2。除此之外,#1,除非你需要在该方法中使用的中间值(电流路径和电流2)在其他地方似乎清洁器。

字符串是不可变的。Net所以你会得到相同的性能了所有的这些方法的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top