Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查StringBuilder是否为空?_C#_Conditional Statements_Stringbuilder - Fatal编程技术网

C# 如何检查StringBuilder是否为空?

C# 如何检查StringBuilder是否为空?,c#,conditional-statements,stringbuilder,C#,Conditional Statements,Stringbuilder,我必须对一个方法进行单元测试,该方法需要一个StringBuilder,两个项目,并用两个项目之间发现的差异填充StringBuilder 在我的第一个测试中,我给它两个相同的项,所以我想测试StringBuilder是否为空 没有IsEmpty方法或属性 如何轻松检查此属性?如果您查看,它只有4个属性。其中之一是Length StringBuilder对象的长度由其Char对象的数量定义 您可以使用以下属性: 获取或设置当前StringBuilder对象的长度 另一种可能是使用该方法将其视为字

我必须对一个方法进行单元测试,该方法需要一个
StringBuilder
,两个项目,并用两个项目之间发现的差异填充
StringBuilder

在我的第一个测试中,我给它两个相同的项,所以我想测试
StringBuilder
是否为空

没有
IsEmpty
方法或属性

如何轻松检查此属性?

如果您查看,它只有4个属性。其中之一是
Length

StringBuilder对象的长度由其Char对象的数量定义

您可以使用以下属性:

获取或设置当前StringBuilder对象的长度

另一种可能是使用该方法将其视为字符串,并使用
ToString
方法将生成器压缩为字符串。您甚至可以获取结果字符串,并将其分配给一个变量,如果发现某些差异,您将使用该变量:

string difference = ""; 

if (!String.IsNullOrEmpty(difference = sb.ToString()))
{
    Console.WriteLine(difference);      
}

使用
StringBuilder.Length
属性,这里是


使用此选项,它将工作:

StringBuilder stringbuilder = new StringBuilder();
if(string.isnullorempty(Convert.toString(stringbuilder)))

sb.Length==0
?@LasseV.Karlsen Ow,很简单:/抱歉,我是C#的初学者。事实上intellisense说“获取或设置stringbuilder对象的长度”,再加上构造函数将容量作为参数,以及无法设置现有字符串的长度这一事实,所有这些都使人相信长度可能反映了容量。事实上,这是一个非常不直观的答案。将
public bool Empty{get;}=this.Length==0。奇怪的是,他们没有这个想法。@Boiethios没错,我一直想知道为什么他们没有实现这样的东西。对于可枚举项也是如此:我认为这是因为length属性是可写的。因此,您可以限制stringbuilder在调用toString方法时解析为字符串的字符数。所以我甚至不知道什么时候该信任肯斯的财产。这里发布的代码非常好,因为它在stringbuilder@RickerSilva这是一个很好的观点。事实上,情况更糟。如果设置
Length
属性,则
StringBuilder
将使用
0x00
字符填充该属性,直到该点为止。如果添加,则附加字符串将附加到零十六进制字符串。如果设置了
Length
属性,则不幸的是
string.IsNullOrWhiteSpace(sb.ToString())
string.IsNullOrEmpty(sb.ToString())
方法也会停止工作
if (mySB.Length > 0)
{
     Console.WriteLine("Bang! is not empty!"); 
}
StringBuilder stringbuilder = new StringBuilder();
if(string.isnullorempty(Convert.toString(stringbuilder)))