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 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短