コード例 #1
0
        /// <summary>
        /// 根据协议规定获取指定值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="defineName"></param>
        /// <param name="buffer"></param>
        /// <returns></returns>
        public static T GetValue <T>(CSDefineType defineName, params byte[] buffer)
        {
            T result = default(T);

            CS_Define desCD = DefineList.Find(cd => cd.defineName == defineName);

            if (desCD != null)
            {
                switch (desCD.defineByteNum)
                {
                case 1:
                    byte value_byte = buffer[desCD.defineIndex];
                    if (value_byte is T)
                    {
                        result = (T)(object)value_byte;     //或 (T)((object)model);
                    }
                    return(result);

                case 2:
                    ushort value_unshort = BitConverter.ToUInt16(buffer, desCD.defineIndex);
                    if (value_unshort is T)
                    {
                        result = (T)(object)value_unshort;     //或 (T)((object)model);
                    }
                    return(result);

                case 4:
                    int value_int = BitConverter.ToInt32(buffer, desCD.defineIndex);
                    if (value_int is T)
                    {
                        result = (T)(object)value_int;     //或 (T)((object)model);
                    }
                    return(result);

                default:
                    break;
                }
            }
            return(result);
        }
コード例 #2
0
 public CS_Define(CSDefineType dn, int di, int db)
 {
     defineName    = dn;
     defineIndex   = di;
     defineByteNum = db;
 }