필자는 참/거짓 조건에 따라 두 개 이상의 필터를 선택하는 방법을 작성했습니다. 아래는 여러 필터를 선택하는 데 사용한 방법입니다.Refactor multiple Delegates를 사용하는 else if 문
public T SetPropertyTypes<T>(bool residential, bool commercial) where T : IPage, new()
{
// Residential Property Type Check logic
if (residential && (ElementIsNotActive(() => FindElement(By.CssSelector(propertyTypeResidentialCss))).Invoke(Driver)))
ClickButton(() => FindElement(By.CssSelector(propertyTypeResidentialCss)), "Residential");
else if (ElementIsActive(() => FindElement(By.CssSelector(propertyTypeResidentialCss))).Invoke(Driver))
ClickButton(() => FindElement(By.CssSelector(propertyTypeResidentialCss)), "Residential");
// Commercial Property Type Check logic
if (commercial && (ElementIsNotActive(() => FindElement(By.CssSelector(propertyTypeCommercialCss))).Invoke(Driver)))
ClickButton(() => FindElement(By.CssSelector(propertyTypeCommercialCss)), "Commercial");
else if (ElementIsActive(() => FindElement(By.CssSelector(propertyTypeCommercialCss))).Invoke(Driver))
ClickButton(() => FindElement(By.CssSelector(propertyTypeCommercialCss)), "Commercial");
}
나중에 내가 코드가 중복 된 것을 발견하고 나는 그것이 간단하고 C#을 비 - ambiguous.I'm 새, 나는 많은 기능을 잘 모르는 것 같아요 만드는 경우가 더 좋을 수있는 방법이 있습니까 C#의 모든 기능을 사용하여 리팩터링하려면 어떻게해야합니까?
if-else-if를 사용하여 변수 검사를 시도했지만 의도 한대로 작동하지 않습니다.
당신의 코드가 현재 작동하는 것, 그리고 당신이 그것을 개선하기 위해 찾고 있습니다. 일반적으로이 질문은이 사이트에 너무 많이 제기되어 왔지만 [CodeReview.SE] (// codereview.stackexchange.com/tour)에서 더 나은 행운을 찾을 수 있습니다. 이 사이트보다 조금 엄격하므로 [해당 요구 사항] (// codereview.stackexchange.com/help/on-topic)을 반드시 읽으십시오. – kayess
ReSharper 도구를 사용해보십시오. –
이 코드에서 의도 한 논리 단계를 영어로 설명하면 도움이됩니다. 당신은 많은 추가적인 점검을하고있는 것 같습니다. 설명은 :'resididential'이'true' 인 경우'propertyTypeResidentialCss'에 위치한 요소를 클릭하십시오. – JeffC