NumberFormatInfo.CurrentInfo Property

Definition

取得根據目前文化特性格式化值的唯讀 NumberFormatInfoGets a read-only NumberFormatInfo that formats values based on the current culture.

public:
 static property System::Globalization::NumberFormatInfo ^ CurrentInfo { System::Globalization::NumberFormatInfo ^ get(); };
public static System.Globalization.NumberFormatInfo CurrentInfo { get; }
member this.CurrentInfo : System.Globalization.NumberFormatInfo
Public Shared ReadOnly Property CurrentInfo As NumberFormatInfo

Property Value

NumberFormatInfo

根據目前執行緒文化特性的唯讀 NumberFormatInfoA read-only NumberFormatInfo based on the culture of the current thread.

Examples

下列範例顯示 CurrentInfoCultureInfo.CurrentCulture.NumberFormat 屬性所傳回的物件完全相同。The following example shows that the objects returned by the CurrentInfo and CultureInfo.CurrentCulture.NumberFormat properties are identical. 然後,它會使用反映,在目前文化特性為 en-us 的系統上,顯示 CurrentInfo 屬性所傳回之 NumberFormatInfo 物件的屬性值。It then uses reflection to display the property values of the NumberFormatInfo object returned by the CurrentInfo property on a system whose current culture is en-US.

using System;
using System.Collections;
using System.Globalization;
using System.Reflection;

public class Example : IComparer
{
   public static void Main()
   {
      NumberFormatInfo nfi1 = NumberFormatInfo.CurrentInfo;
      NumberFormatInfo nfi2 = CultureInfo.CurrentCulture.NumberFormat;
      Console.WriteLine("Objects equal: {0}", nfi1.Equals(nfi2));
      Console.WriteLine("Equal references: {0}\n", Object.ReferenceEquals(nfi1, nfi2));

      PropertyInfo[] props = nfi1.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
      Array.Sort(props, new Example());
      Console.WriteLine("Properties of NumberFormat.CurrentInfo object:");
      foreach (var prop in props) {
         if (prop.PropertyType.IsArray) {
            Array arr = prop.GetValue(nfi1) as Array;
            Console.Write(String.Format("   {0}: ", prop.Name) + "{ ");
            int ctr = 0;
            foreach (var item in arr) {
               Console.Write("{0}{1}", item, ctr == arr.Length - 1 ?" }" : ", ");
               ctr++;
            }
            Console.WriteLine();
         }
         else {
            Console.WriteLine("   {0}: {1}", prop.Name, prop.GetValue(nfi1));
        }
      }
   }

   public int Compare(Object x, Object y)
   {
      if (x == null && y == null) return 0;

      PropertyInfo px = x as PropertyInfo;
      if (px == null) return -1;

      PropertyInfo py = y as PropertyInfo;
      if (py == null) return 1;

      return String.Compare(px.Name, py.Name);
   }
}
// The example displays the following output:
//       Objects equal: True
//       Equal references: True
//
//       Properties of NumberFormat.CurrentInfo object:
//          CurrencyDecimalDigits: 2
//          CurrencyDecimalSeparator: .
//          CurrencyGroupSeparator: ,
//          CurrencyGroupSizes: { 3 }
//          CurrencyNegativePattern: 0
//          CurrencyPositivePattern: 0
//          CurrencySymbol: $
//          DigitSubstitution: None
//          IsReadOnly: True
//          NaNSymbol: NaN
//          NativeDigits: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
//          NegativeInfinitySymbol: -Infinity
//          NegativeSign: -
//          NumberDecimalDigits: 2
//          NumberDecimalSeparator: .
//          NumberGroupSeparator: ,
//          NumberGroupSizes: { 3 }
//          NumberNegativePattern: 1
//          PercentDecimalDigits: 2
//          PercentDecimalSeparator: .
//          PercentGroupSeparator: ,
//          PercentGroupSizes: { 3 }
//          PercentNegativePattern: 0
//          PercentPositivePattern: 0
//          PercentSymbol: %
//          PerMilleSymbol: %
//          PositiveInfinitySymbol: Infinity
//          PositiveSign: +
Imports System.Collections
Imports System.Globalization
Imports System.Reflection

Public Class Example : Implements IComparer
   Public Shared Sub Main()
      Dim nfi1 As NumberFormatInfo = NumberFormatInfo.CurrentInfo
      Dim nfi2 As NumberFormatInfo = CultureInfo.CurrentCulture.NumberFormat
      Console.WriteLine("Objects equal: {0}", nfi1.Equals(nfi2))
      Console.WriteLine("Equal references: {0}", Object.ReferenceEquals(nfi1, nfi2))
      Console.WriteLine()
      
      Dim props() As PropertyInfo = nfi1.GetType().GetProperties(BindingFlags.Instance Or BindingFlags.Public)
      Array.Sort(props, New Example)
      Console.WriteLine("Properties of NumberFormat.CurrentInfo object:")
      For Each prop In props
         If prop.PropertyType.IsArray Then
            Dim arr As Array = CType(prop.GetValue(nfi1), Array)
            Console.Write(String.Format("   {0}: ", prop.Name) + "{ ")
            Dim ctr As Integer = 0
            For Each item In arr
               Console.Write("{0}{1}", item, If(ctr = arr.Length - 1, " }", ", "))
               ctr += 1
            Next
            Console.WriteLine()
         Else
            Console.WriteLine("   {0}: {1}", prop.Name, prop.GetValue(nfi1))
        End If   
      Next      
   End Sub
   
   Private Function Compare(x As Object, y As Object) As Integer _
      Implements IComparer.Compare
      
      If x Is Nothing And y Is Nothing Then Return 0
      Dim px As PropertyInfo = TryCast(x, PropertyInfo)
      If px Is Nothing Then Return -1
      
      Dim py As PropertyInfo = TryCast(y, PropertyInfo)
      If py Is Nothing Then Return 1
      
      Return String.Compare(px.Name, py.Name)
   End Function
End Class
' The example displays the following output:
'       Objects equal: True
'       Equal references: True
'       
'       Properties of NumberFormat.CurrentInfo object:
'          CurrencyDecimalDigits: 2
'          CurrencyDecimalSeparator: .
'          CurrencyGroupSeparator: ,
'          CurrencyGroupSizes: { 3 }
'          CurrencyNegativePattern: 0
'          CurrencyPositivePattern: 0
'          CurrencySymbol: $
'          DigitSubstitution: None
'          IsReadOnly: True
'          NaNSymbol: NaN
'          NativeDigits: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
'          NegativeInfinitySymbol: -Infinity
'          NegativeSign: -
'          NumberDecimalDigits: 2
'          NumberDecimalSeparator: .
'          NumberGroupSeparator: ,
'          NumberGroupSizes: { 3 }
'          NumberNegativePattern: 1
'          PercentDecimalDigits: 2
'          PercentDecimalSeparator: .
'          PercentGroupSeparator: ,
'          PercentGroupSizes: { 3 }
'          PercentNegativePattern: 0
'          PercentPositivePattern: 0
'          PercentSymbol: %
'          PerMilleSymbol: %
'          PositiveInfinitySymbol: Infinity
'          PositiveSign: +

Remarks

CurrentInfo 屬性中抓取 NumberFormatInfo 物件,相當於從 CultureInfo.CurrentCulture.NumberFormat 屬性中抓取 NumberFormatInfo 物件。Retrieving a NumberFormatInfo object from the CurrentInfo property is equivalent to retrieving a NumberFormatInfo object from the CultureInfo.CurrentCulture.NumberFormat property.

Applies to

See also