本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

Int32.TryParse 方法 (String, Int32)

 

將數字的字串表示轉換成它的對等 32 位元帶正負號的整數。 傳回指示轉換是否成功的值。

命名空間:   System
組件:  mscorlib (於 mscorlib.dll)

public static bool TryParse(
	string s,
	out int result
)

參數

s
Type: System.String

字串,包含要轉換的數字。

result
Type: System.Int32

如果轉換成功,這個方法會傳回包含與 s 中內含數字相等的 32 位元帶正負號整數,如果轉換失敗則為零。 轉換失敗的狀況包括:如果 s 參數為 nullString.Empty、不是正確格式,或是表示小於 MinValue 或大於 MaxValue 的數字。 這個參數未初始化便傳遞,result 中原始提供的任何值都將遭到覆寫。

傳回值

Type: System.Boolean

如果 true 轉換成功,則為 s,否則為 false

TryParse方法就像Parse方法,除了TryParse方法不會擲回例外狀況如果轉換失敗。 它不需要使用例外狀況處理來測試FormatExceptions無效,無法成功剖析。

s參數包含數字的格式︰

[ws][符號] 數字 [ws]

在方括號 ([和]) 是選擇性的項目。 下表描述每個項目。

項目

描述

ws

選擇性的泛空白字元。

Sign

選擇性的符號。

digits

範圍從 0 到 9 的數字序列。

s參數會使用解譯NumberStyles.Integer樣式。 除了十進位數字,只允許前置和尾端空格,以及前置正負號。 若要明確定義的樣式項目中可以存在的特定文化特性格式資訊以及s,使用Int32.TryParse(String, NumberStyles, IFormatProvider, Int32)方法。

s參數會剖析使用的格式設定資訊中NumberFormatInfo物件初始化為目前的系統文化特性。 如需詳細資訊,請參閱CurrentInfo

這個多載TryParse方法解譯中的所有位數s參數做為十進位數字。 若要剖析的十六進位數字的字串表示,呼叫Int32.TryParse(String, NumberStyles, IFormatProvider, Int32)多載。

下列範例會呼叫Int32.TryParse(String, Int32)方法使用不同的字串值的數目。

using System;

public class Example
{
   public static void Main()
   {
      String[] values = { null, "160519", "9432.0", "16,667",
                          "   -322   ", "+4302", "(100);", "01FA" };
      foreach (var value in values) {
         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 == null ? "<null>" : value);
         }
      }
   }
}
// The example displays the following output:
//       Attempted conversion of '<null>' failed.
//       Converted '160519' to 160519.
//       Attempted conversion of '9432.0' failed.
//       Attempted conversion of '16,667' failed.
//       Converted '   -322   ' to -322.
//       Converted '+4302' to 4302.
//       Attempted conversion of '(100);' failed.
//       Attempted conversion of '01FA' failed.

某些字串的TryParse(String, Int32)方法是無法在此範例中,將會︰

  • "9432.0". 轉換會失敗,因為字串不能包含小數點。它必須包含整數數字。

  • "16,667". 轉換會失敗,因為字串不能包含群組分隔符號。它必須包含整數數字。

  • "(100)". 轉換會失敗,因為字串不能包含目前的文化特性所定義的非負號NumberFormatInfo.NegativeSignNumberFormatInfo.NumberNegativePattern屬性。

  • 「 01FA"。 轉換會失敗,因為字串不能包含十六進位數字。它必須包含十進位數字。

通用 Windows 平台
自 8 起供應
.NET Framework
自 2.0 起供應
可攜式類別庫
提供支援︰ 可攜式 .NET 平台
Silverlight
自 2.0 起供應
Windows Phone Silverlight
自 7.0 起供應
Windows Phone
自 8.1 起供應
回到頁首
顯示: