在财产层面进行验证

时间:2014-02-07 15:56:02

标签: c# validation properties mvvmcross

我正在尝试在PCL项目中的属性中进行简单验证。

我在这里进行验证的原因是我可以将它用于Android和IOS等其他平台。

以下是我到目前为止尝试的代码:

private string _mobileNumber;
        public string MobileNumber
        {
            get { return _mobileNumber; }
            set { _mobileNumber = MobileNumberValidation(value); RaisePropertyChanged(() => MobileNumber); }
        }

验证方法:

public string MobileNumberValidation(string theMobileNumber)
        {         
            Regex regexExpression = new Regex(@"^(\+91[\-\s]?)?[89]\d{9}$");
            regexExpression.IsMatch(theMobileNumber);
            return "Heck its works ";
        }

如果我的做法错了,请纠正我?

1 个答案:

答案 0 :(得分:1)

试试这个:

private string _mobileNumber;

public string MobileNumber
{
   get { return _mobileNumber; }
   set 
   { 
      if (!MobileNumberValidation(value))
         throw new Exception("Invalid mobile number");

      _mobileNumber = value;
      RaisePropertyChanged(() => MobileNumber);
   }
}

private bool MobileNumberValidation(string theMobileNumber)
{         
   Regex regexExpression = new Regex(@"^(\+91[\-\s]?)?[89]\d{9}$");
   return regexExpression.IsMatch(theMobileNumber);
}