visual|函数|命名空间VB.NET中还是有很多有用的东西的。比如VB.NET可以直接调用Microsoft.VisualBasic命名空间下的各种有用的函数,特别是一些类型验证函数(IsDate,IsNumeric)就十分有用。就拿判断是否为数字来说,在网上我找到了在C#中用到的三种方法(但都有各自的不足之处):
1、将字符串分解成Char,然后用Char.IsNumber(c)验证  public bool IsNumericChar(string str)
public bool IsNumericChar(string str)

 {
{ if (str == null || str.Length==0)
    if (str == null || str.Length==0) 
 
     {
{ return false;
        return false;  }
    } foreach(char c in str)
    foreach(char c in str) 
 
     {
{  if (!Char.IsNumber(c))
        if (!Char.IsNumber(c)) 
 
         {
{  return false;
            return false;  }
        }  }
    }  return true;
    return true;  }
}
缺点:只能验证正整形数字,对浮点数,负数无效。
2、用正则表达式来判断是否为数字
 public bool IsNumericRegex(string str)
public bool IsNumericRegex(string str)

 {
{ System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("^[-]?\d+[.]?\d*$");
    System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("^[-]?\d+[.]?\d*$");    return reg.IsMatch(str);
    return reg.IsMatch(str);   }
}缺点:数字类型的形式多样,像以科学计数法出现的是形式就不能判断,如:1.234568E+008。当然可以考虑修改正则表达式,但是终究不清楚还有何种形式我们没有考虑到。
3、用try...catch...将指定字符串转为数字,如果转换不成功则表示不是数字
 public bool IsNumericTry(string str)
public bool IsNumericTry(string str)

 {
{ try
    try
 
     {
{ // 先判断是否为整形
        // 先判断是否为整形 Int32.Parse(str);
        Int32.Parse(str); }
    } catch
    catch
 
     {
{ // 在判断是否为浮点型
        // 在判断是否为浮点型 try
        try
 
         {
{ Double.Parse(str);
            Double.Parse(str); }
        } catch
        catch
 
         {
{ return false;
            return false; }
        } }
    } return true;
    return true; }
}缺点:功能倒是实现了,不过性能要大打折扣。(有人测试过,不过我没有测试 )
)
  我们为什么不用微软提供的Microsoft.VisualBasic.IsNumeric(obj)函数呢?在C#中不能直接调用Microsoft.VisualBasic命名空间下的函数,但是可以考虑建一个VB.NET项目,然后在C#中引用它。方法如下:
1、建一个VB.NET项目,并添加一个名为Validator的验证函数类。

 Namespace VBUtilitiesNamespace VBUtilities
Namespace VBUtilitiesNamespace VBUtilities
 Public Class ValidatorClass Validator
    Public Class ValidatorClass Validator
 Public Shared Function IsNumeric()Function IsNumeric(ByVal obj As Object) As Boolean
        Public Shared Function IsNumeric()Function IsNumeric(ByVal obj As Object) As Boolean Return Microsoft.VisualBasic.IsNumeric(obj)
            Return Microsoft.VisualBasic.IsNumeric(obj) End Function
        End Function End Class
    End Class End Namespace
End Namespace
2、在需要用到该函数的C#项目中引用该程序集。用Validator.IsNumeric(obj)的方法调用就可以了。
  利用Microsoft.VisualBasic命名空间下的函数,我们还可以实现更多的验证功能,比如验证是否是日期类型(用IsDate)。这样要省掉不少麻烦去自己编写。还有别的方法吗?拿出来一起分享一些吧!
 
  
 
 
  
