2014-02-20 3 views
0

나는이 방법Null 허용 식

public Sorting(Expression<Func<T, object>> property, bool ascending = true) 

을하고 난 내가 어떤 표정을 지정하고 기본 값을 사용하려는 뜻이으로이

public Sorting(null) 

과 같이 호출 할 수 있도록하려면 ascending입니다.

어떻게해야합니까?

public Sorting(Expression<Func<T, object>> property, bool ascending = true) 
public Sorting(bool ascending = true) 

: 당신이 표현을 지정할 필요가없는 경우

+0

메서드에 'null'을 전달하면 ... –

+0

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? –

답변

4

후 (나는 그것의 생성자가 아닌 간단한 방법을 생각한다() 대신에 통과 널의) expression 매개 변수가없는 한이 생성자에 대한 과부하를 만들 - 사이드 노트 그들이 무슨 뜻인지 이해하지 표현과 하드이기 때문에 나는 또한, 방법에 부울 값을 전달 좋아하지 않는다 :

Sorting(false) // what is that? 

보통 내가 다른 방법을 만드는 대신 또는 P (OrderByOrderByDescending 등) 엉덩이 일부 열거 (예 : Order.AscendingOrder.Descending). 생성자를 사용하면 사용자 정의 이름을 지정할 수 없으므로 정적 작성 방법을 사용합니다. 훨씬 읽기가 쉽습니다.

Sorting.CreateDescendingSorting() 
Sorting(Order.Ascending) 
+2

_ 부울 값을 메소드에 전달하는 것이 싫다. 그런 다음 이름 지정된 인수를 사용) :)'Sorting (오름차순 : 거짓) ' –

+0

@ Selman22도 동의 함 :) –

+0

부울 리터럴을 전달할 때 명명 된 인수를 사용하면 코드가 * 그래서 * 훨씬 더 읽기 쉽습니다. 필자는 Java 코드를 작성할 때 주석 처리 (예 :'Sorting (/ * ascending : */false)')를하기 시작했습니다. –