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&raisepropertychanged