C# 属性级别的验证

C# 属性级别的验证,c#,validation,properties,mvvmcross,C#,Validation,Properties,Mvvmcross,我试图在PCL项目中的属性中进行简单的验证 我在这里进行验证的原因是,我可以将其用于其他平台,如Android和IOS 以下是我迄今为止尝试过的代码: private string _mobileNumber; public string MobileNumber { get { return _mobileNumber; } set { _mobileNumber = MobileNumberValidation(

我试图在
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 ";
        }
如果我的方法错误,请纠正我?

尝试以下方法:

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);
}

我在这里没有看到任何验证代码。如果您真的想这样做,您的
mobilenumbervalization
方法应该返回true/false。在属性setter中,当返回true时,仅更新value&raise
propertychanged