-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"));
}

デバッガーが好まない主な行は thisbr.BaseStream.Position = a;です。

NullReferenceException が処理されませんでした」および「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と記載されています。

何がうまくいかないのですか?

4

2 に答える 2

1

あなたが投稿したコードでは、私たちは何であるかを知ることができませんbrNullReferenceException使用されるオブジェクトの1つがnullの場合、Aがケースに入れられます。例外の場合、基になるBaseStreamものがnullであるか、brそれ自体がnullである可能性があります。

デバッガーが壊れたらbr、カーソルを合わせて表示内容を確認します。nullでない場合は、プロパティをスクロールして、デバッガーBaseStreamがnullかどうかを確認します。

私の推測?と呼ばれる新しいBinaryReaderオブジェクトを作成し、からプロパティbr2にアクセスします。.BaseStream.Positionbr

于 2011-12-02T21:44:20.603 に答える
0

br or br.BaseStreamnull.

于 2011-12-02T21:43:58.057 に答える