C# - 불린 형 상수를 반환값으로 포함하는 3항 연산자 사용 시 단축 표현 권장(IDE0075)
예를 들어 다음과 같은 코드를 사용하면,
static bool Test(int id)
{
return (id == 0) ? _valueOnConf : false;
}
Visual Studio가 IDE0075 - Conditional expression can be simplified 메시지를 출력합니다. 오호~~~ 저 식을 좀 더 단축할 수 있다는 건데요. 검색해 보니 ReSharper 리팩터링 도구에 관련 자료가 나옵니다. ^^
Code Inspection: Simplify conditional ternary expression
; https://www.jetbrains.com/help/resharper/SimplifyConditionalTernaryExpression.html
그러니까, bool을 반환하는 3항 연산자를 사용할 때 2항 또는 3항에 불린 형 상수가 포함된 경우라면 &&, || 연산자로 단축시킬 수 있는 것입니다.
가령, 위에서 예로 든 코드와 같이 "false"를 포함하고 있다면 &&로 단축할 수 있습니다.
static bool Test(int id)
{
return (id == 0) && _valueOnConf;
}
마찬가지로, 포함하고 있는 불린 형 상수가 true라면, 조건식을 역으로 뒤집고 OR(||) 연산을 사용하도록 바꿔 표현할 수 있습니다.
static bool Test(int id)
{
return (id == 0) ? _valueOnConf : true;
}
static bool Test(int id)
{
return (id != 0) || _valueOnConf;
}
그렇긴 한데... '가독성' 측면에서 보면 과히 좋아 보이지 않습니다. 사실 3항 연산자 자체도 초보 개발자들은 헷갈려 하는 경우가 많죠. ^^ 회사 동료와도 저것에 대해 이야기를 해보니, 역시 저 표현은 쓰지 않는 것이 좋겠다는 의견입니다. 여러분들은... 어떻게 생각하시나요? ^^
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]