Neredeyse benzer işler yapan iki yöntemi içeren sınıfı basitleştirmenin en iyi yolu nedir?Çoğaltılmış kodun kaldırılmasının en iyi yolu C#
enum State
{
Processing, Stoped
}
public static void CheckState(State state, Element elem)
{
if (elem.State == state)
//some work
}
public static void CheckValue(int value, Element elem)
{
if (elem.Value == value)
//some work
}
Böylece, Element sınıfının nesnesi iki farklı türde alana sahiptir. Yinelenen kodu kaldırmanın en iyi yolu nedir?
Move'da bir yöntem haline ilk oluş, daha sonra İkinci (ve müteakip) oluşum yerine metodu çağırın. – ChrisF
@ ChrisF, bu yöntemler bağımsız olarak, bir değil, diğerinden çağrılır. Komut bir tür olduğunda, CheckState başka bir - CheckValue çağırır. Sorun şu ki, Devlet ve Değer farklı türdedir. T parametresiyle bir genel yöntem yapabilirim (ve T bu yöntemin ilk argümanı olacak) – snoward
@MikhailPliskovsky - // bir işin verdiği kodun aynı olduğunu ve 'D refactor, mutlaka testler değil. – ChrisF