什么是使用一个字符串字符串函数和改变的最佳途径?
-
11-09-2019 - |
题
应该是什么写代码的最佳方式:
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所以你会得到相同的性能了所有的这些方法的。
不隶属于 StackOverflow