发新话题
打印

Vs2005 中用TryParse来检验和转换数据类型的方法

Vs2005 中用TryParse来检验和转换数据类型的方法

  coding时,我们经常会出现对传入的数据进行类型合法性检测,及做相应转换。在以往,多半是通过正则表达式来检测的,有人也使用try{}catch{}来完成。   在vs2005中 又提供了一种新的方法来完成对应类型的检测及转换。vs2005中每种类型都提供了TryParse方法,该方法的格式一般为bool TryParse(value,out resultValue)。value 就是将要转换的数据,resultValue是转换后的值。该方法若成功,resultValue中将是转换后的值,同时方法返回true;若失败,resultValue将是将要转换的类型的默认值,同时方法返回false。下面是个具体的例子: #region "检测数据类型" if (TempValue != "") { switch (DataType) { case DataType.Int: int IntTempValue = 0; if (!int.TryParse(TempValue, out IntTempValue)) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为Int型!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return IntTempValue; case DataType.Dat: DateTime DateTempValue = DateTime.MinValue; if (!DateTime.TryParse(TempValue, out DateTempValue)) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为日期型!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return DateTempValue; case DataType.Long: long LongTempValue = long.MinValue; if (!long.TryParse(TempValue, out LongTempValue)) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为Log型!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return LongTempValue; case DataType.Double: double DoubleTempValue = double.MinValue; if (!double.TryParse(TempValue, out DoubleTempValue)) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为Double型!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return DoubleTempValue; case DataType.CharAndNum: if (!CheckRegEx(TempValue, "^[A-Za-z0-9]+$")) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为英文或数字!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return TempValue; case DataType.CharAndNumAndChinese: if (!CheckRegEx(TempValue, "^[A-Za-z0-9\u00A1-\u2999\u3001-\uFFFD]+$")) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为英文或数字或中文!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return TempValue; case DataType.Email: if (!CheckRegEx(TempValue, "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")) EventMessage.MessageBox(2, "输入数据格式验证失败", string.Format("{0}字段值:{1}数据类型必需为邮件地址!", InputName, TempValue), Icon_Type.Error, "history.back();", UrlType.JavaScript); return TempValue; default: return TempValue; } } else { switch (DataType) { case DataType.Int: return 0; case DataType.Dat: return DateTime.MaxValue; case DataType.Long: return long.MinValue; case DataType.Double: return 0.0f; default: return TempValue; } } #endregion

TOP

发新话题