GetByteCount显示为负数,但事实并非如此

时间:2013-07-23 00:34:35

标签: c# winforms listview binarywriter

所以我试图从litview子项中获取ByteCount,但它总是显示负面错误: [参数OutOfRangeException未处理:'count'不能为负数,参数名称:count] 这是我得到错误的代码行:

bw.Write(enc.GetBytes(listView1.Items[i].SubItems[3].Text + (new string('\0',dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)))));

我试过这个:

 if (enc.GetByteCount(listView1.Items[i].SubItems[3].Text) > 0)
                {
                    bw.Write(enc.GetBytes(listView1.Items[i].SubItems[3].Text + (new string('\0',dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)))));
                }

不起作用,甚至将if条件设为'> -1',相同的结果。

1 个答案:

答案 0 :(得分:1)

参数ArgumentOutOfRangeException上的count例外。它可能是抛出此异常的字符串构造函数,而不是GetByteCount

这意味着减法dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)的结果是否定的。

试试这个:

if (dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text) > 0)
{
    bw.Write(enc.GetBytes(listView1.Items[i].SubItems[3].Text + (new string('\0',dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)))));
}