Visual C# 2005 で最初にビルドされたプログラムをコンパイルしています。Visual C# 2010 を使用しています。次の関数でプログラムを実行すると、「NullReference Execption was unhandled」エラーが発生し続けます。データバッファ。DataBuffer は、初期化時に null に設定されたプライベート文字列です。
if (DataBuffer.Contains(ok))
{
okFound = true;
}
と
string temp = getLine(DataBuffer.Substring(mylocation));
if (!checkTypeFound())
{
if (temp != null)
{
parseDeviceType(temp);
}
checkTypeFound();
}
上記のコードで DataBuffer の値を確認すると (エラーが発生した場合)、これは null ではありません。実際に私が期待するデータが含まれています。DataBuffer 情報は、次の関数でロードされます。
private void ser1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
while (ser1.BytesToRead > 0)
{
string data = ser1.ReadExisting();
DataBuffer += data;
}
}
シリアル ポートは、コード内の別の場所で開かれています。コンパイラが異なるだけで、コードに変更はありません。どの行を追加する必要があり、このエラーをどこで解決すればよいですか? if ステートメントと try-catch ステートメントを使用して、このエラーの発生を防ぐことができることに注意してください。しかし、これは私が探しているものではありません。このコードが機能する必要があります。このアプリケーションは、コンパイラー以外の点で変更されていません。