-2

当我运行我的程序时,下面的代码出现错误:

///////////////////////////// Read in the selected //////////////
BinaryReader br2 = new BinaryReader(File.OpenRead(directoryToSearch2),
                                    System.Text.Encoding.BigEndianUnicode);

var Hexbytes = new List<string>();

///////////////////////////// Read in offset ////////////////
for (int a = 0x12 ; a <= 0x26; a++)
{
    br.BaseStream.Position = a;
    Hexbytes.Add(br.ReadByte().ToString("X2"));
}

调试器不喜欢的主线是 this br.BaseStream.Position = a;

它指出“未处理 NullReferenceException ”和“未将对象引用设置为对象的实例。

任何想法出了什么问题?

4

2 回答 2

1

使用您发布的代码,我们无法判断是什么brNullReferenceException当使用的对象之一为空时,A是大小写。在您的例外情况下,底层证券BaseStream可能为 null 或br本身为 null。

当调试器中断时,将鼠标悬停在br上面并查看它向您显示的内容,如果它不为空,请滚动属性以查找BaseStream并查看它是否为空。

我猜?您创建了一个名为 BinaryReader 的新对象br2,并且正在从 访问该.BaseStream.Position属性br

于 2011-12-02T21:44:20.603 回答
0

因为 br 或 br.BaseStreamis null

于 2011-12-02T21:43:58.057 回答