title: In .NET, why does SerialPort.ReadExisting() return a String instead of a byte array?
body: <p>In the .NET <a href="http://msdn.microsoft.com/en-us/library/system.io.ports.serialport%28v=vs.110%29.aspx" rel="nofollow">SerialPort</a> class the <code>ReadExisting()</code> method returns a <code>String</code> instead of an array of bytes. This seems like an odd choice considering that RS232 is typically used to move 7 or 8 bit values, which may or may not be printable characters. Is there a reason for this choice?</p>
  
  <p>Currently I end up using <code>System.Text.Encoding.GetBytes(recvd_data)</code> to convert the <code>String</code> to a byte array. Is there a more efficient method?</p>