2017-11-20 14 views
-3

$私は既に受け取ったデータを変換します。しかし、私はスイッチの文章に入れようとすると、それは何もしません。あなたが見ることができるように、受け取ったデータとその良いことを示すMessageBox.Show(rData)があります。スイッチ上でのみ使用できます。なにか提案を?スイッチ文字列のステートメントが機能していませんか?

string readData = null; 

    public void getMessage() 
    { 
     while (true) 
     { 
      serverStream = clientSocket.GetStream(); 
      int buffsize = 0; 
      byte[] inStream = new byte[10025]; 
      buffsize = clientSocket.ReceiveBufferSize; 
      serverStream.Read(inStream, 0, buffsize); 
      string rData = Encoding.ASCII.GetString(inStream); 
      readData = "" + rData; 
      //MessageBox.Show(rData); 

      switch (readData) 
      { 
       case ("Overview"): 
        MessageBox.Show("Start"); 
        break; 
       default: 
        break; 
      } 
     } 
    } 
+0

「それはいいですか?」とはどういう意味ですか? *正確に*は 'readData'の値ですか? –

+4

"データは良好です"では不十分です。必要なすべてのデータと一緒に真の[MCVE]を提供してください。 –

+1

ようこそスタックオーバーフロー!あなたは新しいユーザーであるので、[「良い質問をする方法」](https://stackoverflow.com/help/how-to-ask)を読むことをお勧めします。質問を適切に行うと、より良い回答が得られ、同様の問題がある場合に他の人が質問を理解できるようになります。 –

答えて

2
byte[] inStream = new byte[10025]; 

あなたの着信データは、あなたが文字列に変換したときに限り、あなたが最後に0文字(文字列の終端)\束を得るだろうでない場合は、長さが10025でのバイト配列を初期化してきました。

MessageBox.Showを呼び出すと、これらの文字は表示されません。これらは表示されない文字なので表示されません。

ので、ソリューションを使用すると、switch文

+0

私はそれらを置くべき場所にもっと具体的になることができますか? var.Replace?または? – Jss

+0

@Jss readData = readData.Replace( "\ 0"、 "");スイッチの前に – Steve

0

にそれを供給する前に、問題が(私は仮定)あなたということです実際のデータ

のサイズに配列を初期化したり、文字列に.Replace("\0", "");を呼び出すことですC#7.0を使用していて、value tuple(大文字小文字のステートメント内の文字列の周りにかっこを使用して誤って締め付けている)で大文字と小文字を一致させようとしています。 case文のかっこを削除して、もう一度やり直してください。

関連する問題