Iは約Int32.TryParse()
Int32.TryParse()は失敗した場合に0を返します。成功または失敗ですか?
この方法戻り、 変換が成功した場合、Sに含まれる数と 等価 32ビット符号付き整数値を含む、またはゼロ 変換する場合、MSDNからこれを読ん失敗しました。
しかし、渡された文字列自体が '0'の文字列の場合はどうなりますか?したがって、TryParse
はゼロを返します。成功か失敗かをどのように知ることができますか?
Iは約Int32.TryParse()
Int32.TryParse()は失敗した場合に0を返します。成功または失敗ですか?
この方法戻り、 変換が成功した場合、Sに含まれる数と 等価 32ビット符号付き整数値を含む、またはゼロ 変換する場合、MSDNからこれを読ん失敗しました。
しかし、渡された文字列自体が '0'の文字列の場合はどうなりますか?したがって、TryParse
はゼロを返します。成功か失敗かをどのように知ることができますか?
いいえ、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()
というプロトタイプがあります。 がを返すことは非常に明白です。 2番目のパラメータは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:固定された、ありがとう。 –