나는이 두 규칙의 차이점을 알아 내려고하고있다. MergeSequentialChecks
ReSharper`MergeSequentialChecks`와`MergeSequentialChecksWhenPossible`의 차이점은 무엇입니까?
MergeSequentialChecksWhenPossible
- 문서는 두 번째에 대해 아무 말도하지 않습니다. https://www.jetbrains.com/help/resharper/2016.1/MergeSequentialChecks.html
그리고 나에게 명확한 질문이 아닙니다.
WhenPossible
은 무엇을 의미합니까?ReSharper가 첫 번째 규칙을 적용하고 순차적 검사를 병합 할 것을 제안하면 실제로 가능합니다. 어떻게 가능하지 않을까요?
다음은 확인할 코드 예제입니다. 와 코드 검사 뒤에
는public class Person { public string Name { get; set; } public IList<Person> Descendants { get; set; } } public static class TestReSharper { // Here `MergeSequentialChecks` rule is triggered for both `&&` operands. public static bool MergeSequentialChecks(Person person) { return person != null && person.Descendants != null && person.Descendants.FirstOrDefault() != null; } // Here `MergeSequentialChecksWhenPossible` rule is triggered. public static bool MergeSequentialChecksWhenPossible1(Person person) { return person != null && person.Descendants.Any(); } // Here `MergeSequentialChecksWhenPossible` rule is triggered. public static bool MergeSequentialChecksWhenPossible2(Person person) { return person.Descendants != null && person.Descendants.Any(); } }
"병합 순차적 검사"리팩토링은 대부분의 경우 깨져서 식의 논리를 뒤집습니다. –