最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java和C#下的參數(shù)驗證方法

 更新時間:2016年09月26日 08:21:42   投稿:jingxian  
下面小編就為大家?guī)硪黄狫ava和C#下的參數(shù)驗證實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

參數(shù)的輸入和驗證問題是開發(fā)時經(jīng)常遇到的,一般的驗證方法如下:

public bool Register(string name, int age)
{
 if (string.IsNullOrEmpty(name))
 {
  throw new ArgumentException("name should not be empty", "name");
 }
 if (age < 10 || age > 70)
 {
  throw new ArgumentException("the age must between 10 and 70","age");
 }
 //...
}

這樣做當需求變動的時候,要改動的代碼相應(yīng)的也比較多,這樣比較麻煩,最近接觸到了Java和C#下2種方便的參數(shù)驗證方法,簡單的介紹下。

Java參數(shù)驗證:

采用google的guava下的一個輔助類:

import com.google.common.base.Preconditions;

示例代碼:

public static void checkPersonInfo(int age, String name){
  Preconditions.checkNotNull(name, "name為null");
  Preconditions.checkArgument(name.length() > 0, "name的長度要大于0");
  Preconditions.checkArgument(age > 0, "age必須大于0");
  System.out.println("a person age: " + age + ", name: " + name);
 }
 
 public static void getPostCode(String code){
  Preconditions.checkArgument(checkPostCode(code),"郵政編碼不符合要求");
  System.out.println(code);
 }

 public static void main(String[] args) {
  try {
   checkPersonInfo(10,"fdsfsd");
   checkPersonInfo(10,null);
   checkPersonInfo(-10,"fdsfsd");
   getPostCode("012234");
   
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

當參數(shù)不滿足要求的時候,拋出異常信息,異常中攜帶的信息為后面自定義的字符串,這樣寫就方便多了。

C#參數(shù)驗證:

采用FluentValidation這個類庫,參考地址在下面。

使用方法:

一個簡單的Person類:

public class Person
 {
  public string Name { set; get; }

  public int Age { set; get; }

  public Person(string name, int age)
  {
   Name = name;
   Age = age;
  }
 }

Person的驗證類:

public class PersonValidator : AbstractValidator<Person>
 {
  public PersonValidator()
  {
   RuleFor(x => x.Name).NotEmpty().WithMessage("姓名不能為空");
   RuleFor(x => x.Name).Length(1,50).WithMessage("姓名字符不能超過50");   
   RuleFor(x => x.Age).GreaterThan(0).WithMessage("年齡必須要大于0");
  }

  private bool ValidName(string name)
  {
   // custom name validating logic goes here
   return true;
  }
 }

使用:

class Program
 {
  static void Main(string[] args)
  {
   Person customer = new Person(null,-10);
   PersonValidator validator = new PersonValidator();
   ValidationResult results = validator.Validate(customer);

   bool validationSucceeded = results.IsValid;
   IList<ValidationFailure> failures = results.Errors;
   foreach (var failure in failures)
   {
    Console.WriteLine(failure.ErrorMessage);
   }

   Console.ReadKey();
  }
 }

FluentValidation的使用文檔:http://fluentvalidation.codeplex.com/documentation

以上就是小編為大家?guī)淼腏ava和C#下的參數(shù)驗證方法的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~

相關(guān)文章

  • Java JUC中操作List安全類的集合案例

    Java JUC中操作List安全類的集合案例

    這篇文章主要介紹了JUC中操作List安全類的集合案例,本文羅列了不安全的集合和安全的集合進行對比,以及Java中提供的安全措施,需要的朋友可以參考下
    2021-07-07
  • java內(nèi)存優(yōu)化的方法總結(jié)

    java內(nèi)存優(yōu)化的方法總結(jié)

    在本篇文章里小編給大家分享的是一篇關(guān)于java內(nèi)存優(yōu)化的方法總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-06-06
  • Java ArrayList深入源碼層分析

    Java ArrayList深入源碼層分析

    Java中容器對象主要用來存儲其他對象,根據(jù)實現(xiàn)原理不同,主要有3類常用的容器對象:ArrayList使用數(shù)組結(jié)構(gòu)存儲容器中的元素、LinkedList使用鏈表結(jié)構(gòu)存儲容器中的元素
    2023-01-01
  • java List中相同的數(shù)據(jù)合并到一起

    java List中相同的數(shù)據(jù)合并到一起

    這篇文章主要介紹了java List中相同的數(shù)據(jù)合并到一起,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Java制作驗證碼的完整實例代碼

    Java制作驗證碼的完整實例代碼

    這篇文章主要給大家介紹了關(guān)于Java制作驗證碼的完整實例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java定時調(diào)度器(Quartz)使用實例

    java定時調(diào)度器(Quartz)使用實例

    這篇文章主要介紹了java開源定時調(diào)度器使用方法
    2013-12-12
  • Spring Boot整合Lombok的方法詳解

    Spring Boot整合Lombok的方法詳解

    Lombok 是一種 Java 實用工具,可用來幫助開發(fā)人員消除 Java 的冗長,尤其是對于簡單的 Java 對象(POJO)。這篇文章主要介紹了Spring Boot整合Lombok,需要的朋友可以參考下
    2021-04-04
  • Java中文件讀寫操作與常用技巧分享

    Java中文件讀寫操作與常用技巧分享

    在 Java I/O 體系中,F(xiàn)ile 類是唯一代表磁盤文件本身的對象,而File 類定義了一些與平臺無關(guān)的方法來操作文件,所以下面我們一起來看看 File 類有哪些操作方法吧
    2023-06-06
  • Spring詳細講解事務(wù)失效的場景

    Spring詳細講解事務(wù)失效的場景

    實際項目開發(fā)中,如果涉及到多張表操作時,為了保證業(yè)務(wù)數(shù)據(jù)的一致性,大家一般都會采用事務(wù)機制,好多小伙伴可能只是簡單了解一下,遇到事務(wù)失效的情況,便會無從下手,下面這篇文章主要給大家介紹了關(guān)于Spring事務(wù)失效場景的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Springboot微服務(wù)打包Docker鏡像流程解析

    Springboot微服務(wù)打包Docker鏡像流程解析

    這篇文章主要介紹了Springboot微服務(wù)打包Docker鏡像流程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08

最新評論

佛学| 苍山县| 东兰县| 墨脱县| 五莲县| 施甸县| 扎兰屯市| 应城市| 西乌| 克什克腾旗| 抚顺县| 武乡县| 财经| 城固县| 福泉市| 东乡族自治县| 纳雍县| 犍为县| 新野县| 台前县| 濮阳县| 和顺县| 阿合奇县| 萨迦县| 新源县| 宜州市| 乌兰察布市| 偃师市| 万荣县| 曲靖市| 乐平市| 石景山区| 龙里县| 南通市| 庆阳市| 武隆县| 鄂伦春自治旗| 东乡族自治县| 博野县| 丰顺县| 乌兰察布市|