2012-05-03 3 views
0

제가 누락되었습니다.이 작업을하려면 어떻게해야합니까? SD 및/또는 에드 빈 페이지 loades 인 경우 때 조건부 변수

var now = DateTime.Now; 
string loadStartDate = Request.QueryString["sd"] == String.Empty ? now.AddMonths(-14).ToShortDateString(); 
string loadEndDate = Request.QueryString[ "ed" ] == String.Empty ? now.ToShortDateString(); 

은 기본적으로 다음 내 사전 정의 된 물건 날짜를 입력합니다.

답변

5

:과 그 뒤의 부분을 잊어 버리고 있습니다.

  • 술어 (Request.QueryString["sd"] == String.Empty)
  • 사실 지점
  • 거짓 지점

당신은 거짓 분기 구문과 값을 누락 :

조건 연산자는 세 부분으로 구성됩니다.

나는 그것이로 작성합니다

string loadStartDate = string.IsNullOrWhitespace(Request.QueryString["sd"]) 
         ? now.AddMonths(-14).ToShortDateString() 
         : Request.QueryString["sd"]; 

참고 :

string.IsNullOrWhitespace는 .NET 4.0에 새로운, 그래서 이전 버전에 대한 string.IsNullOrEmpty를 사용합니다. 조건 연산자 구문은

string loadStartDate = Request.QueryString["sd"] == String.Empty ? now.AddMonths 
(-14).ToShortDateString():SOME OTHER VALUE; 
+3

예; 'Request.QueryString []'은 어떤 값도 전혀 제출되지 않았다면'String.Empty'가 아닌'null'을 리턴 할 것입니다. –

+0

@ p.campbell - 실제로 ... 문자열이 필요하면 왕복이 필요하지 않습니다. 그것을 놓쳤습니다. – Oded

+0

감사합니다. 내가 잃어버린 것이 무엇인지 궁금해하고 있었다. 에 대한 설명을 주셔서 감사합니다. :) –

1

그것은이어야한다.

은 조건부 연산자를 사용하지만 조금 반복됩니다. 다음과 같이하십시오.

DateTime now = DateTime.Now; 
string loadStartDate = Request.QueryString["sd"]; 
if (String.IsNullOrEmpty(loadStartDate)) loadStartDate = now.AddMonths(-14).ToShortDateString(); 
string loadEndDate = Request.QueryString[ "ed" ]; 
if (String.IsNullOrEmpty(loadEndDate)) loadEndDate = now.ToShortDateString(); 
1

: 당신은 결장 및 실행 조건이 거짓 인 경우의 값을 누락

condition ? truevalue : falsevalue 

같이