Serial Message Not Evaluating Correctly -- Arduino-VB.net App

if (inByte != '\n' && (SerialMessage_char < SerialMessageLength -1) )
    {
      SerialMessage[SerialMessage_char] = inByte;

reads to me as "if a Newline is received and the String length has not been reached then ad the Newline to the String". How do you interpret it ?

I don't generally use Strings as I prefer strings, but do Strings need to be terminated with a '\0' as you seem to be doing ?

Do you understand the difference between Strings and strings ?