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 妈妈生日祝福语简短励志