琐事,我知道,但只是感兴趣
我有一个stringbuilder变量,我想返回它的内容,但是如果它是空的我想返回"|",那么最好在compare语句中使用stringbuilder.tostring,例如
If lReturnStringBuilder.ToString = String.Empty Then lReturnStringBuilder.Append("|") End If return lreturnStringBuilder.tostring
或者最好将其转换为字符串,并进行比较,即使这意味着加载一个新变量并为其分配字符串空间,例如
Dim lString as string = lReturnStringBuilder.ToString if lString = string.empty then lstring = "|" end if return lString
Noldorin.. 8
这是一种你真正不需要担心的微优化.但是,无论如何,我会发布我认为最优雅(也是最有效)的方式:
Dim result = If(lReturnString.Length = 0, "|", lReturnString.ToString())
这样可以节省不必要地将空StringBuilder转换为字符串(或者然后调用Append,这绝对不是必需的).注意使用内联If语句(VB 9.0),它在任何一种情况下都不评估两个语句,因为它是一个语言结构而不是一个函数(完全等同于带有变量赋值的普通If语句).
这是一种你真正不需要担心的微优化.但是,无论如何,我会发布我认为最优雅(也是最有效)的方式:
Dim result = If(lReturnString.Length = 0, "|", lReturnString.ToString())
这样可以节省不必要地将空StringBuilder转换为字符串(或者然后调用Append,这绝对不是必需的).注意使用内联If语句(VB 9.0),它在任何一种情况下都不评估两个语句,因为它是一个语言结构而不是一个函数(完全等同于带有变量赋值的普通If语句).