28 NİSAN 2015, Salı
Nasıl-sonra-ata inşaat tekrar basitleştirmek için?
Aşağıdaki yöntemi var:
protected override bool ModifyExistingEntity(Product entity, ProductModel item)
{
bool isModified = false;
if (entity.Title != item.Title)
{
isModified = true;
entity.Title = item.Title;
}
if (entity.ServerId != item.Id)
{
isModified = true;
entity.ServerId = item.Id;
}
return isModified;
}
Eğer bu yöntemi uygulamak için daha iyi bir yol önerebilir misiniz acaba.
Sorun belli: özellik başına kopya yapıştırılan kod çok fazla neredeyse 5 satır. Orada olabilir, görüş alanımın dışında bir çözüm Func-s/ Expression-s kullanıyor.
CEVAP
28 NİSAN 2015, Salı
Temporal kaplin bir durum var, yani varlık atamaları ile değişip değişmediğini kontrol karıştırıyorsun. Eğer iki ayrı, kodunuzu daha temiz olur:
protected override bool ModifyExistingEntity(Product entity, ProductModel item)
{
bool isModified = this.IsEntityModified(entity, item);
if (isModified)
{
this.UpdateEntity(entity, item);
}
return isModified;
}
private bool IsEntityModified(Product entity, ProductModel item)
{
return entity.Title != item.Title || entity.ServerId != item.ServerId;
}
private void UpdateEntity(Product entity, ProductModel item)
{
entity.Title = item.Title;
entity.ServerId = item.Id;
}
Akıllı ve funky herhangi bir malzeme (TM) Func<> ya da böyle bir şey, ne niyetinizi açıkça aktarım olmaz bu durumda yararlı görünmüyor.
Bunu PaylaÅŸ:

Nasıl daha sonra düz metin alma için e...
Nasıl jQuery Ajax çağrısından sonra bi...
Nasıl durum çubuğunun altında ActionBa...
Nasıl Android bir gecikmeden sonra bir...
Nasıl tekrar ng veri filtre uzunluğu g...