Are you a C programmer? ;-) A char-zero is not used as the null terminator in a string. Most string implementations (besides C) use some sort of length descriptor to determine the length of the string. To reinforce this point, check out the constructor for string - one takes an array of chars. If you were a Java or VB programmer this would seem perfectly normal to you.
Later, curt ----- Original Message ----- From: "Miguel Ángel Chacón" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 12, 2002 11:42 AM Subject: [DOTNET] String Bug or somethig I missunderstood? Just execute this lines of code and see the results. If you build a string from a char array like this: {'B','U','G',0,0,0,0}, the resulting string have a length of 8, and if you build a new string adding some words to the first string and you write it you´ll see 'blanks' for the '0' char, like this: "BUG NEW BUG". My expected result is that the length of the first string to be 3 (no?) and when I add something the result should be "BUGNEWBUG". Am I wrong? using System; using System.IO; namespace StringBugTest { class Class1 { [STAThread] static void Main(string[] args) { byte[] bytes = new byte[8]; bytes.SetValue((byte)66,0); bytes.SetValue((byte)85,1); bytes.SetValue((byte)71,2); bytes.SetValue((byte)0,3); bytes.SetValue((byte)0,4); bytes.SetValue((byte)0,5); bytes.SetValue((byte)0,6); bytes.SetValue((byte)0,7); MemoryStream ms=new MemoryStream(bytes); BinaryReader bReader=new BinaryReader(ms); char[] cadena=bReader.ReadChars(8); string bug=new string(cadena); Console.WriteLine(bug); int a=bug.Length; Console.WriteLine(a); bug+="NEW BUG"; Console.WriteLine(bug); } } } Thanks for your attention. Miguel Ángel Chacón Espín. Telecinco. Spain. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.