2017-10-25 11 views
1

그래서 .. 나는이 매개 변수로 오리 엔테이션을 얻을 WPF 에서이 변환기있어. 그렇지 않은 경우 변환기는 방향을 가로로 지정해야합니다. 좋은 코드로 일치 패턴 만들기

Orientation orientation = Orientation.Horizontal; 
if (parameter is Orientation) 
    orientation = (Orientation) parameter; 

그러나, ReSharper에서 "입니다"아래에 호기심을두고 내가 "유형 검사와 함께 캐스팅 병합"제안

:

내 코드입니다. 리팩토링을 사용하면 다음과 같이 보입니다.

Orientation orientation = Orientation.Horizontal; 
if (parameter is Orientation orientation1) 
    orientation = orientation1; 

더미 변수를 사용합니다.

내 창조물이 가장 좋고 깨끗하다고 ​​생각하지만, resharper는 동의하지 않습니다. 이 코드를 어떻게 작성 하시겠습니까?

나는 resparper를 구성 할 수 있지만 대부분이 유형의 제안을 좋아한다는 것을 알고 있습니다. 그것은 구조체를 다루는 것만으로도 괴롭힘을당하는 것처럼 보입니다.

+0

나는 의견을 근거로 생각합니다. 나는 Merges를 좋아한다. – Peter

+0

그것은 다음과 같다 :-) 대부분의 것들은 모범 사례에 관한 것이다. 나중에 코드를 읽을 사람이 누구인지에 달려 있습니다. – iakob

답변

0

내 생각에 R #은 최신 C# 기능을 사용하여 코드를 복잡하게합니다. 당신의 변형이 미세하고 분명하다, 내가 (그냥 3 라인입니다!) 필요가이를 변경이 표시되지 않습니다

그러나 값을 기본값으로 대체와 as 연산자를 사용하는 것을 고려

object parameter1 = Orientation.Vertical; 

Orientation o1 = (parameter1 as Orientation?) ?? Orientation.Horizontal; 

object parameter2 = "Vertical"; 

Orientation o2 = (parameter2 as Orientation?) ?? Orientation.Horizontal; 
(nullable 형식 Orientation? 필요)

반품

Orientation.Vertical 
Orientation.Horizontal 
+0

아름다운, 고마워! 짧은 짧은 라이너도 있습니다 :-) – iakob