Tekrarlanan kod parçalarına sahibim. Bu DRY prensibi ile çelişir. Ama bunun yerini jenerik yöntemle nasıl değiştirdiğimi bilmiyorum.C# doğru yolu genel yöntem uygulayarak
class Foo
{
public bool isFirstAttribHasRightValue;
public bool isSecondAttribHasRightValue;
private readonly T1 _firstAttrib;
private readonly T2 _secondAttrib;
public HashSet<T1> relatedToFirstAttrib;
public HashSet<T2> relatedToSecondAttrib;
...
public C()
{ ... }
public T1 GetFirstAttrib(T3 somevalue)
{
return (somevalue != othervalue) || isFirstAttribHasRightValue ? _firstAttrib : default(T1);
}
public T2 GetSecondAttrib(T3 somevalue)
{
return (somevalue != othervalue) || isSecondAttribHasRightValue ? _secondAttrib : default(T2);
}
public ClearRelatedToFirst()
{
isFirstAttribHasRightValue = true;
relatedToFirstAttrib.Clear();
}
public ClearRelatedToSecond()
{
isSecondAttribHasRightValue = true;
relatedToSecondAttrib.Clear();
}
...
}
Ben ClearRelatedToAttrib<TYPE>()
için, ClearRelatedToFirst()
ve ClearRelatedToSecond()
gibi yinelenen yöntemleri değiştirmek ister. Ve bu cinayet yönteminin içinde hangi bool
ayarlanacağını bilmiyorum, ya da hashset
temizlemeye ihtiyacım var. Diğer yinelenen yöntemlerle aynı. Bana gösterebilir misin, bu kodu nasıl değiştirebilirim? Teşekkürler. Aşağıda
i yöntemini nasıl uygulamak gerekir? public Attribute GetAttribute (T) {// orada ne olmalı? } ' –
gek0n