2009-10-09 2 views

답변

3

많은 종류의 당신이 사용할 수있는 TryParse 방법이 (대부분의 기본 유형에 대한 등가물이있다). 예를 들면 다음과 같습니다.

string input = null; 
bool result; 
Boolean.TryParse(input, out result); 
// result ... 

위의 내용은 유효하며 구문 분석 할 입력이 null 일 때 예외를 throw하지 않습니다.

항목을 문자열로 변환 할 때 거의 항상 개체에서 ToString() 메서드를 호출하면됩니다. 그러나 null 객체에서 호출하면 예외가 발생합니다.

StringBuilder sb = new StringBuilder(); 
Console.WriteLine(sb.ToString()); // valid, returns String.Empty 
StringBuilder sb = null; 
Console.WriteLine(sb.ToString()); // invalid, throws a NullReferenceException 

하나의 예외는 nullable 형식에서 ToString()을 호출하는 것으로 String.Empty를 반환합니다.

int? x = null; 
Console.WriteLine(x.ToString()); // no exception thrown 

따라서 ToString을 호출 할 때는주의해야합니다. 개체에 따라 명시 적으로 null을 확인해야 할 수도 있습니다.

+0

내가 좋아하는 코드는 다음과 같습니다. string test = "123"; txtBox.Text = test.ToString(); 권자 –

2

int (Int32)과 같은 일부 유형은 TryParse 메소드를가집니다. 그런 방법이있는 경우이를 사용하려고합니다. 그렇지 않으면, 나는 당신이 윤곽을 그리면 거의 null 체크를한다. Convert.To.

"올바른"방법이 있는지 대부분의 작업과 마찬가지로 상황에 따라 다릅니다.

친절,

댄 것은

3

link 참조하십시오. 대부분의 경우

는 캐스팅 Convert.To *() 함수는이 개체가 아니라고 "A 형이 객체가 정말 B 형 파생-에서-A의 객체 이다"라고 타입 B,하지만 그것은 상황에 따라 달라

+0

꽤 좋습니다 .... +1. – David

+1

나는 변환 *이 무엇인지 이해하지만 최선의 방법을 알고 싶다. – RCIX

1

"B를 입력 변환 할 수있는 방법이 존재한다. 당신이 당신의 자신에 더 나은 선택을 할 수 있도록 내 최고의 조언은, 공부를하고 숙지하는 것입니다, 하지만 먼저 다음을 살펴 봐야합니다.

System.Int32.TryParse() 

DateTime.ParseExact()

관련 문제