当我运行程序时,下面的代码会出现错误:
///////////////////////////// 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"));
}
调试器不喜欢的主线是br.BaseStream.Position = a;
。
它声明“ NullReferenceException未处理”和“对象引用未设置为对象的实例。”
任何想法出了什么问题?
答案 0 :(得分:1)
根据您发布的代码,我们无法确定br
是什么。当使用的其中一个对象为null时,NullReferenceException
被装入。对于您的异常,基础BaseStream
可以为null或br
本身为null。
当调试器中断时,将鼠标悬停在br
上并查看它显示的内容,如果它不为null,请滚动查看属性以查找BaseStream
并查看是否为空。
我的猜测?您创建一个名为 br2
的新BinaryReader对象,并从 .BaseStream.Position
访问br
属性。
答案 1 :(得分:0)
因为br或br.BaseStream
是null
。