난 MSDN에서 숙지 약Int32.TryParse()는 실패시 0을 반환합니다 - 성공 또는 실패?
이 방법 반환 될 경우 32 비트 정수 상기 변환이 성공한다면 등가 값 (S)에 포함되는 숫자 , 제로를 포함
Int32.TryParse()
변환 실패한.
하지만 전달 된 문자열 자체가 '0'의 문자열 표현 인 경우 어떻게됩니까? 따라서 TryParse
은 0을 반환합니다. 그것이 성공인지 실패인지 어떻게 알 수 있습니까?
난 MSDN에서 숙지 약Int32.TryParse()는 실패시 0을 반환합니다 - 성공 또는 실패?
이 방법 반환 될 경우 32 비트 정수 상기 변환이 성공한다면 등가 값 (S)에 포함되는 숫자 , 제로를 포함
Int32.TryParse()
변환 실패한.
하지만 전달 된 문자열 자체가 '0'의 문자열 표현 인 경우 어떻게됩니까? 따라서 TryParse
은 0을 반환합니다. 그것이 성공인지 실패인지 어떻게 알 수 있습니까?
아니요, TryParse
은 성공을 나타 내기 위해을 반환합니다. out
매개 변수의 값은 구문 분석 된 값에 사용되거나 실패하면 0으로 사용됩니다. 그래서 : 당신이 "0"에 전달하면 당신이 "나쁜 번호"를 전달하는 경우는 두 번째 블록을 실행하는 반면
int value;
if (Int32.TryParse(someText, out value))
{
// Parse successful. value can be any integer
}
else
{
// Parse failed. value will be 0.
}
그래서, 그것은 첫 번째 블록을 실행합니다.
이 메서드는 성공 또는 실패를 나타내는 부울을 반환합니다. 그것을 사용하십시오. 정수는 메서드에 전달되는 참조 매개 변수이며 메서드의 반환 값과는 아무 관련이 없습니다.
다음은 documentation의 Int32.TryParse()
의 프로토 타입입니다. 은을 부울 값으로 반환합니다. 두 번째 매개 변수는 out int
이며, 이는 인수가 참조로 전달되므로 메서드에 의해 변경 될 것임을 의미합니다.
public static bool TryParse(
string s,
out int result
)
그래서이 작업을 수행, 성공 또는 실패를 확인하려면
int value;
if (Int32.TryParse("0", out value))
Console.WriteLine("Parsed as " + value);
else
Console.WriteLine("Could not parse");
TryParse를()는 부울을 반환합니다.
Int32 testInt;
if (!Int32.TryParse("123", out testInt))
{
MessageBox.Show("Is not a Int32!");
return; // abbrechen
}
MessageBox.Show("The parst Int32-value is " + testInt);
Int32.TryParse()
방법으로서 반환 값을 반환 boolean
및 출력 파라미터로 변환 된 값을 제공한다. 따라서 상태에 대한 값 boolean
을 확인할 수 있습니다.
private static void TryToParse(string value)
{
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
지금 당신은 TryParse 같은 내에서 변수를 선언 할 수 있습니다 C# 7을 사용하여 ...
if (Int32.TryParse(someText, out int value))
{
// Parse successful. value can be any integer
}
else
{
// Parse failed. value will be 0.
}
아이쿠! 내 잘못이야. 내가 프로그래밍을하는 동안 나는 닫아야한다. 너무 쉽게 게시 할 수 :). – NLV
if의 끝 부분에')'을 사용하지 않았습니다. – BoltClock
@BoltClock : 고침, 고마워. –