2016-09-29 3 views
1

는이 코드가 실패 구문 분석이 실패하더라도 3 개의 기본 값을 유지하는 좋은 방법은 무엇입니까? 정말보관할 기본값은

if(!double.TryParse(myStr, out myDouble)) 
{ 
    myDouble = 3; 
} 
+0

당신이 코드의 간결함을 찾고 있는가, 그것을 유지하기 어려운, 또는 유지 관리가 쉬운 코드를 재사용 할 수있는 원인이 될 수있다? "좋은 방법"을 정의하는 방법에 따라 다양한 옵션을 사용할 수 있습니다. –

+0

예를 들어 구문 분석에 실패한 후 할당 된 값인 "3"을 유지하려고합니다. 유지 및 재사용이 쉬운 것처럼 보입니다. – Clock

+0

그럴 경우, SomeUser가 대답에 게시 한 것처럼 자신 만의 함수를 작성하는 것이 좋습니다. 그것의 복잡함은 숨겨져 있고 당신의 할당은'double myDouble = ParseAsDoubleOrDefault (myStr, 3)'와 같을 필요가 있습니다. 물론 구문 분석이 성공한 경우 대신 값을 반환하도록 제안 된 함수를 수정해야합니다. –

답변

2

그것은 여전히 ​​종류의 if 절이지만 줄은 적습니다. 이것은 나를 위해 작동 :

string myStr = "sdfs"; 
    double myDouble = Double.TryParse(myStr, out myDouble) ? myDouble : 3; 
+0

효과가있을 수 있지만 "마법 수"대신 의미있는 이름을 가진 변수를 사용해야합니다 3. –

1

같은 경우 절은이 같은 것입니다 할 수있는 유일한 방법을하지 않고 :

string myStr = "sdfs"; 
double myDouble; 
double myDoubleDefaultValue = 3; 
if (!double.TryParse(myStr, out myDouble)) 
{ 
    myDouble = myDoubleDefaultValue; 
} 

이유는이 완료되기 전에 아웃 변수, 메소드가 값을 할당해야한다는 것입니다 .

+1

그것은 OP가 이미 제안한 것과별로 다르지 않습니다. – juharr

+0

예,하지만 값을 지정하는 이유에 대한 설명도 추가했습니다. – kemiller2002

+0

@juharr OP의 매직 넘버 3보다 훨씬 낫습니다. –