[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
    public struct TCMPP_DELIVER
    {
        public long Msg_Id;//信息标识
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)] 
        public Char[] Dest_Id;//Char[21];//目的号码
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] 
        public Char[] Service_Id;//Char[10];//业务类型,是数字、字母和符号的组合。
        public Byte TP_pid;//GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
        public Byte TP_udhi;//GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
        public Byte Msg_Fmt;//信息格式
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] 
        public Char[] Src_terminal_Id;// Char[32]; //源终端MSISDN号码
        public Byte Src_terminal_type;//源终端号码类型,0:真实号码;1:伪码。
        public Byte Registered_Delivery; //是否为状态报告0:非状态报告1:状态报告
        public Byte Msg_Length; //消息长度
}
        private TCMPP_DELIVER TCMPP_DELIVERBytesToStuct(byte[] bs)
        {
            TCMPP_DELIVER TCM;
            int index = 0;
            TCM.Msg_Id = BitConverter.ToInt64(bs, index);
            index += 7;
            String STR1 = System.Text.Encoding.Unicode.GetString(bs, index, 21);
            TCM.Dest_Id = STR1.ToCharArray();
            index += 21;
            String STR2 = System.Text.Encoding.Unicode.GetString(bs, index, 10);
            TCM.Service_Id = STR2.ToCharArray();
            index += 10;
            TCM.TP_pid = bs[index];
            index += 1;
            TCM.TP_udhi = bs[index];
            index += 1;
            String STR3 = System.Text.Encoding.Unicode.GetString(bs, index, 32);
            TCM.Src_terminal_Id = STR3.ToCharArray();
            index += 32;
            TCM.Src_terminal_type = bs[index];
            index += 1;
            TCM.Registered_Delivery = bs[index];
            index += 1;
            TCM.Msg_Length = bs[index];
            index += 1;
            return TCM;
        }
为什么总是说"错误 1 使用了未赋值的局部变量“TCM”"
我查不出是怎么原因.请各位前辈们帮下我.