编写代码的最佳方法是什么:
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没有区别?
答案 0 :(得分:1)
这些都是一样的。试试
Path.GetFileNameWithoutExtension(Request.Path)
答案 1 :(得分:1)
这三个基本相同。
记住字符串是不可变的。每次在字符串上调用方法时,它都会分配一个新的字符串对象,因此调用Remove()
会创建一个新对象,然后用于调用Replace()
。
1& 2基本相同。 #3有点不同,因为你使用3个独立的变量,所以你要坚持对这些字符串的引用,以便以后可以使用它们。无论你是否将中间字符串存储为变量,垃圾收集器应该知道如何处理所有3个示例并处理它们大致相同。
我会使用#2,因为它的代码行数较少而且不会产生可读性,但它仍然是一段相当短的代码。
答案 2 :(得分:1)
这些调用可以抛出异常。对于玩具代码,可以不检查,但是在获得路径之后,应该在调用Remove之前检查String.NullOrEmpty和长度。所以,这就是为什么我会避免#2。除此之外,#1看起来更干净,除非你需要在方法的其他地方使用中间值(current作为路径和current2)。
答案 3 :(得分:0)
字符串在.Net中是不可变的,因此您将从所有这些方法中获得相同的性能。