-1

エラー メッセージが表示され、修正方法がわかりません。これは私が持っている元のコードです:

private void SendMessage(Command cmd, EndPoint sendToEP)
{
    try
    {
        //Create the message to send.
        Data msgToSend = new Data();

        //msgToSend.strName = txtName.Text;   //Name of the user.
        msgToSend.cmdCommand = cmd;         //Message to send.
        msgToSend.vocoder = vocoder;        //Vocoder to be used.

        byte[] message = msgToSend.ToByte();

        //Send the message asynchronously.
        clientSocket.BeginSendTo(message, 0, message.Length, SocketFlags.None, sendToEP, new AsyncCallback(OnSend), null);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "UniProject-SendMessage ()", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

エラーメッセージは(ボタンプレスイベント)です

オブジェクト参照がオブジェクト インスタンスに設定されていません。

このエラー メッセージが表示される理由と修正方法を教えてください。

4

1 に答える 1

4

このようなエラー (a) が発生するたびNullReferenceExceptionに、コードに に設定されているものがありますnull。コードを見て、次のことを判断する必要があります。

  1. どの行(どのメソッド)でエラーが発生していますか?
  2. その行のどの変数が参照型またはnull 許容値型ですか?
    通常の値の型 ( struct、または整数、浮動小数点数、倍精度浮動小数点数) は、 にすることはできませんnull
  3. それらの変数のうち、おそらくどれが可能性がありますnullか?
  4. これらの変数はどこに設定されている可能性がありnullますか?
    たとえば、メソッドの引数、メソッドから返された値、またはas演算子の結果によって、変数が になる場合がありnullます。

これらのいずれにも当てはまらない場合は、(可能性は低いですが) メソッドがこの例外をスローしている可能性があります。.NET 基本クラス メソッドは通常、このような例外をスローしません。コードが例外をスローした場合、スタック トレースは、それを実行する最も深いメソッドと行に到達する必要があります。

于 2013-03-20T02:01:00.290 に答える