国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

在C#中調(diào)用Microsoft.VisualBasic命名空間下的類型驗證函數(shù)

2024-07-21 02:17:35
字體:
供稿:網(wǎng)友


vb.net中還是有很多有用的東西的。比如vb.net可以直接調(diào)用microsoft.visualbasic命名空間下的各種有用的函數(shù),特別是一些類型驗證函數(shù)(isdate,isnumeric)就十分有用。就拿判斷是否為數(shù)字來說,在網(wǎng)上我找到了在c#中用到的三種方法(但都有各自的不足之處):
1、將字符串分解成char,然后用char.isnumber(c)驗證 public bool isnumericchar(string str)
{
    if (str == null || str.length==0) 
    {
        return false; 
    }
    foreach(char c in str) 
    
        if (!char.isnumber(c)) 
        
            return false; 
        } 
    } 
    return true; 
}

缺點:只能驗證正整形數(shù)字,對浮點數(shù),負數(shù)無效。

2、用正則表達式來判斷是否為數(shù)字

public bool isnumericregex(string str)
{
    system.text.regularexpressions.regex reg = new system.text.regularexpressions.regex(@"^[-]?/d+[.]?/d*$");   
    return reg.ismatch(str);  
}

缺點:數(shù)字類型的形式多樣,像以科學(xué)計數(shù)法出現(xiàn)的是形式就不能判斷,如:1.234568e+008。當(dāng)然可以考慮修改正則表達式,但是終究不清楚還有何種形式我們沒有考慮到。

3、用try...catch...將指定字符串轉(zhuǎn)為數(shù)字,如果轉(zhuǎn)換不成功則表示不是數(shù)字

public bool isnumerictry(string str)
{
    try
    {
        // 先判斷是否為整形
        int32.parse(str);
    }
    catch
    {
        // 在判斷是否為浮點型
        try
        {
            double.parse(str);
        }
        catch
        {
            return false;
        }
    }
    return true;
}

缺點:功能倒是實現(xiàn)了,不過性能要大打折扣。(有人測試過,不過我沒有測試

  我們?yōu)槭裁床挥梦④浱峁┑膍icrosoft.visualbasic.isnumeric(obj)函數(shù)呢?在c#中不能直接調(diào)用microsoft.visualbasic命名空間下的函數(shù),但是可以考慮建一個vb.net項目,然后在c#中引用它。方法如下:
1、建一個vb.net項目,并添加一個名為validator的驗證函數(shù)類。

namespace vbutilitiesnamespace vbutilities
    public class validatorclass validator
        public shared function isnumeric()function isnumeric(byval obj as object) as boolean
            return microsoft.visualbasic.isnumeric(obj)
        end function
    end class
end namespace

2、在需要用到該函數(shù)的c#項目中引用該程序集。用validator.isnumeric(obj)的方法調(diào)用就可以了。

  利用microsoft.visualbasic命名空間下的函數(shù),我們還可以實現(xiàn)更多的驗證功能,比如驗證是否是日期類型(用isdate)。這樣要省掉不少麻煩去自己編寫。還有別的方法嗎?拿出來一起分享一些吧!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 正安县| 塘沽区| 西畴县| 白玉县| 健康| 来安县| 贵定县| 泸州市| 陵川县| 张家界市| 大新县| 嘉峪关市| 七台河市| 祁阳县| 肥东县| 益阳市| 宜城市| 南皮县| 盐津县| 嵊泗县| 普兰县| 内黄县| 仲巴县| 渭南市| 镇康县| 昭平县| 措勤县| 正镶白旗| 武乡县| 招远市| 娱乐| 永春县| 大同市| 融水| 中西区| 潜江市| 长白| 紫云| 师宗县| 个旧市| 社旗县|