这个字符串怎么操作?
我调用API函数获取当前的系统用户名,得到了一个string类型的字符串,可是后面却跟了一串多余的 "0\0\0\0\0\0\0\ ",我以为是空格,可是用string.Trim()方法怎么也删不掉,请问我得到的是字符串吗?如果是为什么不能删除后面的东西呢?下面是我的代码     
 API函数调用定义: 
             [DllImport( "Advapi32.dll ",   EntryPoint   =    "GetUserName ",   ExactSpelling   =   false,   SetLastError   =   true)] 
             static   extern   bool   GetUserName([MarshalAs(UnmanagedType.LPArray)]   byte[]   lpBuffer,   [MarshalAs(UnmanagedType.LPArray)]   Int32[]   nSize);   
 这是函数调用: 
                         byte[]   str   =   new   byte[20]; 
                         Int32[]   len   =   new   Int32[1]; 
                         len[0]   =   20; 
                         GetUserName(str,   len); 
                         string   username   =   System.Text.Encoding.ASCII.GetString(str).Trim(); 
 调试的时候   username显示的值为 "chen.zh\0\0\0\0\0\0\0\0\0\0\0\0\0 " 
 请问是只怎么回事啊,我厂只要前面的chen.zh就好.
------解决方案--------------------[DllImport( "advapi32.dll ")] 
 public static extern bool GetUserName(StringBuilder lpBuffer, ref int nSize);   
 private void button1_Click(object sender, EventArgs e) 
 { 
     StringBuilder vBuffer = new StringBuilder(256); 
     int vSize = vBuffer.Capacity; 
     GetUserName(vBuffer, ref vSize); 
     Text = vBuffer.ToString(); 
     //Text = Environment.UserName; //推荐用.NET的方法 
 }