VB.Net中可以用isNumeric,isDate,但C#中没有。除了正则式和 parse+异常外,还有什么好的方法吗?当然了,不要说自己写函数哦:) 另外,正则和异常判断这两种方法应该是正则式强一些的吧
解决方案 »
- 。net窗体怎么弹出一个确认删除窗体
- 高手进.net windows workflow 要用到网页上是不是一定要安装microsoft sharepoint server 2007
- 【急切求助】如何改变文本框内部分内容的字体颜色?
- 怎样在关闭窗体时将这个窗体的文本框中的内容清空啊?
- 这个接口不知俱体怎么样实现?(请各位高手帮我指点指点)(抱歉,我的分用完了)
- 关于考勤机和考勤系统的问题
- 进来者既可有分
- 一段非常简单的C#代码,没有按照预想执行,求教!
- 关于WINFROM中LISTVIEW的问题
- 重载“File”方法未获取“1”参数,请问是怎么回事啊?
- winform中怎样用listbox邦定DataSet?
- 为什么这个TIMER报这样的错呢?
int num = 0;
double result;
bool parseResult = double.TryParse("123", out result)
if( parseResult && result<= int.MaxValue && result >= int.MinValue )
{
//..........
}
else
{
//..........
}
天哪,判断一个数据,居然要写一堆try catch,而且异常捕捉时速度贼慢
v1.1.4322
public static bool IsDate(object Expression)
{
if (Expression != null)
{
if (Expression is DateTime)
{
return true;
}
if (Expression is string)
{
try
{
DateTime time1 = DateType.FromString((string) Expression);
return true;
}
catch (Exception)
{
}
}
}
return false;
}
public static bool IsNumeric(object Expression)
{
IConvertible convertible1 = null;
double num1;
if (Expression is IConvertible)
{
convertible1 = (IConvertible) Expression;
}
if (convertible1 == null)
{
if (Expression is char[])
{
Expression = new string((char[]) Expression);
}
else
{
return false;
}
}
TypeCode code1 = convertible1.GetTypeCode();
if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))
{
return Utils.IsNumericTypeCode(code1);
}
string text1 = convertible1.ToString(null);
try
{
long num2;
if (StringType.IsHexOrOctValue(text1, ref num2))
{
return true;
}
}
catch (Exception)
{
return false;
}
return DoubleType.TryParse(text1, ref num1);
}
v2.0.50727public static bool IsDate(object Expression)
{
if (Expression != null)
{
if (Expression is DateTime)
{
return true;
}
string text1 = Expression as string;
if (text1 != null)
{
DateTime time1;
return Conversions.TryParseDate(text1, ref time1);
}
}
return false;
}
public static bool IsNumeric(object Expression)
{
double num1;
IConvertible convertible1 = Expression as IConvertible;
if (convertible1 == null)
{
char[] chArray1 = Expression as char[];
if (chArray1 != null)
{
Expression = new string(chArray1);
}
else
{
return false;
}
}
TypeCode code1 = convertible1.GetTypeCode();
if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))
{
return Information.IsOldNumericTypeCode(code1);
}
string text1 = convertible1.ToString(null);
try
{
long num2;
if (Utils.IsHexOrOctValue(text1, ref num2))
{
return true;
}
}
catch (StackOverflowException exception1)
{
throw exception1;
}
catch (OutOfMemoryException exception2)
{
throw exception2;
}
catch (ThreadAbortException exception3)
{
throw exception3;
}
catch (Exception)
{
return false;
}
return DoubleType.TryParse(text1, ref num1);
}
Microsoft.VisualBssic => Microsoft.VisualBasic
2.0中用TryParseDate我觉得还是foreach遍历,自己分析比较好
日期主要是分析日是否超过月最大天数
数字更简单,Char.IsDigit判断就可以了