문제

습니다.Net 읽을 수 있는 문자열 값으로 다른 데이터 형식을 사용하여 중 <datatype>.parseConvert.To<DataType>.

나는 익숙하지 않의 기본을 분석 대 변환 그래서 나는 항상 손실을 물을 때는 하나 더/빨/더 적절하다.

그 어느 방법이에서 최고의 어떤 종류의 상황?

도움이 되었습니까?

해결책

Convert.ToXXX() 방법을 대체할 수 있는 올바른 또는 이와 유사한 유형 동 .Parse().TryParse() 특별한 문자열:

//o is actually a boxed int
object o = 12345;

//unboxes it
int castVal = (int) 12345;

//o is a boxed enum
object o = MyEnum.ValueA;

//this will get the underlying int of ValueA
int convVal = Convert.ToInt32( o );

//now we have a string
string s = "12345";

//this will throw an exception if s can't be parsed
int parseVal = int.Parse( s );

//alternatively:
int tryVal;
if( int.TryParse( s, out tryVal ) ) {
    //do something with tryVal 
}

의 경우 컴파일러 최적화를 플래그 TryParse 은 매우 빠른 최선의 방법에서 번호로 문자열입니다.그러나 만약 당신이하는 개체를 수 있습 int 되고 있는지 또는 문자열로 변환.ToInt32 은 더 빠르다.

다른 팁

여기 당신을 위해 답변:

http://www.dotnetspider.com/forum/ViewForum.aspx?ForumId=77428

하지만 제 생각에 현대적인 버전이다.NET,최고의 것을 사용하 TryParse 어떤 경우에,이 있는 경우에는 의심의 여지가 전환 작동합니다.

나의 큰 팬 TryParse, 기 때문에,저 당신의 많은 두통의 오류 잡고 있을 때 기회가 가치 당신이 구문 분석의 적절한 형식입니다.

나의 순서는 일반적으로:

  • Parse(이 될 수 있다면 확실한 값이 오른쪽 종류,내가 할지 확인하이)
  • TryParse(면 나는 확신할 수는 없는 일이 발생 할 때마다 사용자 입력이 참여,또는 입력한 시스템을 제어할 수 없습니다)
  • 변환(는 생각에 나는 사용하지 않기 시작하기 때문에 사용하여 분석하고 TryParse 지만,내가 잘못 될 수 있습니다.)

또한 DirectCast 방법을 사용해야 하는 경우에만 무엇인지 종류의 개체입니다.그 속도는 빠르지만 하지 않는 모든 적절한 검사합니다.내가 사용하는 DirectCast 때에 내가 추출하는 값에서 느슨하게 입력 DataTable 때 나는 유형에 대한 각각의 열입니다.

해야 하는 경우 속도,내가 확신이 직접 캐스팅 가장 빠른 방법입니다.그는 말했다,나는 정상적으로 사용 가능합니다.분석 또는.TryParse 기 때문에 보이는 것을 더 쉽게 읽기,그리고 행동하는 예측 가능한 방식이다.

로 변환이 실제로 전화문 분석 후드,내가 믿습니다.그래서 약간의 차이가 있고,정말 그냥하는 것 같 문제가 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top