Beispiel #1
0
 /// <summary>
 /// 创建并返回一个失败的结果对象,该对象复制另一个结果对象的错误信息
 /// </summary>
 /// <typeparam name="T1">目标数据类型一</typeparam>
 /// <typeparam name="T2">目标数据类型二</typeparam>
 /// <typeparam name="T3">目标数据类型三</typeparam>
 /// <typeparam name="T4">目标数据类型四</typeparam>
 /// <param name="result">之前的结果对象</param>
 /// <returns>带默认泛型对象的失败结果类</returns>
 public static XktResult <T1, T2, T3, T4> CreateFailedResult <T1, T2, T3, T4>(XktResult result)
 {
     return(new XktResult <T1, T2, T3, T4>()
     {
         ErrorCode = result.ErrorCode,
         Message = result.Message,
     });
 }
        public static XktResult <string> SetMigrationValue(string set, DataType type, string scale, string offset)
        {
            XktResult <string> result = new XktResult <string>();

            if (scale == "1" && offset == "0")
            {
                try
                {
                    switch (type)
                    {
                    case DataType.Byte:
                        result.Content = Convert.ToByte(set).ToString();
                        break;

                    case DataType.Short:
                        result.Content = Convert.ToInt16(set).ToString();
                        break;

                    case DataType.UShort:
                        result.Content = Convert.ToUInt16(set).ToString();
                        break;

                    case DataType.Int:
                        result.Content = Convert.ToInt32(set).ToString();
                        break;

                    case DataType.UInt:
                        result.Content = Convert.ToUInt32(set).ToString();
                        break;

                    case DataType.Long:
                        result.Content = Convert.ToInt64(set).ToString();
                        break;

                    case DataType.ULong:
                        result.Content = Convert.ToUInt64(set).ToString();
                        break;

                    case DataType.Float:
                        result.Content = Convert.ToSingle(set).ToString();
                        break;

                    case DataType.Double:
                        result.Content = Convert.ToDouble(set).ToString();
                        break;

                    default:
                        result.Content = set;
                        break;
                    }
                    result.IsSuccess = true;
                    return(result);
                }
                catch (Exception)
                {
                    result.IsSuccess = false;
                    result.Message   = "转换出错," + GetErrorMsg(type);
                    return(result);
                }
            }
            else
            {
                try
                {
                    switch (type)
                    {
                    case DataType.Byte:
                        result.Content = Convert.ToByte((Convert.ToSingle(set) - Convert.ToSingle(offset)) / Convert.ToSingle(scale)).ToString();
                        break;

                    case DataType.Short:
                        result.Content = Convert.ToInt16((Convert.ToSingle(set) - Convert.ToSingle(offset)) / Convert.ToSingle(scale)).ToString();
                        break;

                    case DataType.UShort:
                        result.Content = Convert.ToUInt16((Convert.ToSingle(set) - Convert.ToSingle(offset)) / Convert.ToSingle(scale)).ToString();
                        break;

                    case DataType.Int:
                        result.Content = Convert.ToInt32((Convert.ToSingle(set) - Convert.ToSingle(offset)) / Convert.ToSingle(scale)).ToString();
                        break;

                    case DataType.UInt:
                        result.Content = Convert.ToUInt32((Convert.ToSingle(set) - Convert.ToSingle(offset)) / Convert.ToSingle(scale)).ToString();
                        break;

                    case DataType.Long:
                        result.Content = Convert.ToInt64((Convert.ToDouble(set) - Convert.ToDouble(offset)) / Convert.ToDouble(scale)).ToString();
                        break;

                    case DataType.ULong:
                        result.Content = Convert.ToUInt64((Convert.ToDouble(set) - Convert.ToDouble(offset)) / Convert.ToDouble(scale)).ToString();
                        break;

                    case DataType.Float:
                        result.Content = Convert.ToSingle((Convert.ToSingle(set) - Convert.ToSingle(offset)) / Convert.ToSingle(scale)).ToString();
                        break;

                    case DataType.Double:
                        result.Content = Convert.ToDouble((Convert.ToDouble(set) - Convert.ToDouble(offset)) / Convert.ToDouble(scale)).ToString();
                        break;

                    default:
                        result.Content = set;
                        break;
                    }
                    result.IsSuccess = true;
                    return(result);
                }
                catch (Exception)
                {
                    result.IsSuccess = false;
                    result.Message   = "转换出错," + GetErrorMsg(type);
                    return(result);
                }
            }
        }