我重构旧代码,但不知道对这部分代码该怎么做。我需要此代码是有史以来最快的代码中最快的代码。:D不,我只是想知道这种情况下是否有更好的写作风格。
我有主班。在主类中,我有7个关系(a,b,c,d,e,f,g)的关联类。在这些类中,除了以下两个属性外,还包括:(datetime1,datetime2)。我的目标是检查这些关系中的任何一种属性是否已更改,以及是否更改了更改其他(second_main)类中的当前属性的运行方法。但是,在这些(main和second_main)类上,此属性关联不能相同。(意味着a.datetime1不能与b.datetime1具有相同的关系,因为b.datetime1可以在不对a.datetime1进行任何更新的情况下进行更改。但是,当a.datetime1进行更改时,它必须更改b.datetime1。
也许我写的有点太复杂了。所以请耐心等待。
这个版本可读性不高,我认为可以写得更好。我尝试了lambda表达式,但是列表初始化可能需要很长时间,并且
(!this.a.IsNull("datetime1") && this.a.IsChanged("datetime1")) ||
(!this.b.IsNull("datetime1") && this.b.IsChanged("datetime1")) ||
(!this.c.IsNull("datetime1") && this.c.IsChanged("datetime1")) ||
(!this.d.IsNull("datetime1") && this.d.IsChanged("datetime1")) ||
(!this.e.IsNull("datetime1") && this.e.IsChanged("datetime1")) ||
(!this.f.IsNull("datetime1") && this.f.IsChanged("datetime1")) ||
(!this.g.IsNull("datetime1") && this.g.IsChanged("datetime1")) ||
(!this.a.IsNull("datetime2") && this.a.IsChanged("datetime2")) ||
(!this.b.IsNull("datetime2") && this.b.IsChanged("datetime2")) ||
(!this.c.IsNull("datetime2") && this.c.IsChanged("datetime2")) ||
(!this.d.IsNull("datetime2") && this.d.IsChanged("datetime2")) ||
(!this.e.IsNull("datetime2") && this.e.IsChanged("datetime2")) ||
(!this.f.IsNull("datetime2") && this.f.IsChanged("datetime2")) ||
(!this.g.IsNull("datetime2") && this.g.IsChanged("datetime2"))
{
DejAtributDoCasti("a.datetime1",
"b.datetime1",
"c.datetime1",
"d.datetime1",
"e.datetime1",
"f.datetime1",
"g.datetime1",
"a.datetime2",
"b.datetime2",
"c.datetime2",
"d.datetime2",
"e.datetime2",
"f.datetime2",
"g.datetime2");
}
Run Code Online (Sandbox Code Playgroud)