C#将转换封装在函数中
示例
public class MyObject{
public DateTime? TestDate { get; set; }
public Func<MyObject, bool> DateIsValid = myObject => myObject.TestDate.HasValue &&myObject.TestDate> DateTime.Now;
public void DoSomething(){
//我们做得到:
if(this.TestDate.HasValue &&this.TestDate> DateTime.Now){
CallAnotherMethod();
}
//或这个:
if(DateIsValid(this)){
CallAnotherMethod();
}
}
}本着干净代码的精神,像上面那样将检查和转换封装为Func可以使您的代码更易于阅读和理解。尽管上面的示例非常简单,但是如果存在多个DateTime属性,每个属性都有各自不同的验证规则,又想检查不同的组合怎么办?每个都建立了返回逻辑的简单的单行Funcs既可以读取,又可以减少代码的表观复杂性。考虑下面的Func调用,并想象将有更多代码使该方法混乱:
public void CheckForIntegrity(){
if(ShipDateIsValid(this) && TestResultsHaveBeenIssued(this) && !TestResultsFail(this)){
SendPassingTestNotification();
}
}
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短