所有细节都在String.Replace的文档中:
返回值:
与当前字符串等效的字符串,但oldValue的所有实例都替换为newValue.如果在当前实例中找不到oldValue,则该方法返回当前实例不变.
在if
不需要声明.
一种if
说法甚至不是一个性能优化,因为String.Replace
返回同一个对象实例,如果属性oldValue找不到.我已使用以下代码验证了这一点:
namespace StringReplaceTest { class Program { static void Main(string[] args) { string s = "Test"; string s2 = s.Replace("Foo", "Bar"); string s3 = s.Replace("es", "tt"); } } }
使用方便的Make Object ID功能(右键单击Locals,Auto或Watch窗口中的符号; 有关详细信息,请参阅Common Expression Evaluator Features),产生以下输出:
s | "Test" {$1} s2 | "Test" {$1} s3 | "Tttt" {$2}