NumberFormatInfo.CurrencyNegativePattern 属性

定义

获取或设置负货币值的格式模式。

public:
 property int CurrencyNegativePattern { int get(); void set(int value); };
public int CurrencyNegativePattern { get; set; }
member this.CurrencyNegativePattern : int with get, set
Public Property CurrencyNegativePattern As Integer

属性值

负货币值的格式模式。 InvariantInfo 的默认值是 0,它表示“($n)”,其中“$”是 CurrencySymboln 是一个数字。

例外

属性设置为小于 0 或大于 16 的值。 在 .NET Core 3.1 及更早版本中,如果值大于 15,则会引发此异常。

设置了该属性,但 NumberFormatInfo 对象为只读。

示例

以下示例演示 属性 CurrencyNegativePattern 如何定义负货币值的格式。 它检索在主计算机上定义的所有特定区域性,并显示每个区域性的 CurrencyNegativePattern 属性值、其关联的模式以及格式化为货币值的数字。

using System;
using System.Collections.Generic;
using System.Globalization;

public class Example : IComparer<CultureInfo>
{
   public static void Main()
   {
      // Assign possible values and their associated patterns to a
      // generic Dictionary object.
      Dictionary<int, String> patterns = new Dictionary<int, String>();
      string[] patternStrings= { "($n)", "-$n", "$-n", "$n-", "(n$)",
                                 "-n$", "n-$", "n$-", "-n $", "-$ n",
                                 "n $-", "$ n-", "$ -n", "n- $", "($ n)",
                                 "(n $)", "$- n" };
      for (int ctr = patternStrings.GetLowerBound(0);
           ctr <= patternStrings.GetUpperBound(0); ctr++)
         patterns.Add(ctr, patternStrings[ctr]);

      // Retrieve all specific cultures.
      CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
      Array.Sort(cultures, new Example());

      double number = -16.335;
      // Display the culture, CurrencyNegativePattern value, associated pattern, and result.
      foreach (var culture in cultures)
         Console.WriteLine("{0,-15} {1,2} ({2,5}) {3,15}", culture.Name + ":",
                           culture.NumberFormat.CurrencyNegativePattern,
                           patterns[culture.NumberFormat.CurrencyNegativePattern],
                           number.ToString("C", culture));
   }

   public int Compare(CultureInfo x, CultureInfo y)
   {
      return String.Compare(x.Name, y.Name);
   }
}
// A portion of the output appears as follows:
//       ca-ES:           8 ( -n $)        -16,34 €
//       co-FR:           8 ( -n $)        -16,34 €
//       cs-CZ:           8 ( -n $)       -16,34 Kč
//       cy-GB:           1 (  -$n)         -£16.34
//       da-DK:          12 ( $ -n)      kr. -16,34
//       de-AT:           9 ( -$ n)        -€ 16,34
//       de-CH:           2 (  $-n)       Fr.-16.34
//       de-DE:           8 ( -n $)        -16,34 €
//       de-LI:           2 (  $-n)       CHF-16.34
//       de-LU:           8 ( -n $)        -16,34 €
//       dsb-DE:          8 ( -n $)        -16,34 €
//       luy-KE:         16 ( $- n)      Ksh- 16.34
//
// The result shown here happens only if using ICU.
// Apps that use NLS, for example, .NET Framework apps, might see different results.
// Globalization data can change, which would also change these results.
Imports System.Collections.Generic
Imports System.Globalization

Public Class Example : Implements IComparer(Of CultureInfo)
   Public Shared Sub Main()
      ' Assign possible values and their associated patterns to a 
      ' generic Dictionary object.
      Dim patterns As New Dictionary(Of Integer, String)
      Dim patternStrings() As String = { "($n)", "-$n", "$-n", "$n-", "(n$)", 
                                         "-n$", "n-$", "n$-", "-n $", "-$ n",
                                         "n $-", "$ n-", "$ -n", "n- $", "($ n)",
                                         "(n $)", "$- n" }    
      For ctr As Integer = patternStrings.GetLowerBound(0) To patternStrings.GetUpperBound(0)
         patterns.Add(ctr, patternStrings(ctr))
      Next

      ' Retrieve all specific cultures.
      Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
      Array.Sort(cultures, New Example())
      
      Dim number As Double = -16.335
      ' Display the culture, CurrencyNegativePattern value, associated pattern, and result.
      For Each culture In cultures
         Console.WriteLine("{0,-15} {1,2} ({2,5}) {3,15}", culture.Name + ":", 
                           culture.NumberFormat.CurrencyNegativePattern,
                           patterns.Item(culture.NumberFormat.CurrencyNegativePattern),
                           number.ToString("C", culture))
      Next
   End Sub
   
   Public Function Compare(x As CultureInfo, y As CultureInfo) As Integer _
                           Implements IComparer(Of CultureInfo).Compare
      Return String.Compare(x.Name, y.Name)                           
   End Function                           
End Class
' A portion of the output appears as follows:
'       ca-ES:           8 ( -n $)        -16,34 €
'       co-FR:           8 ( -n $)        -16,34 €
'       cs-CZ:           8 ( -n $)       -16,34 Kč
'       cy-GB:           1 (  -$n)         -£16.34
'       da-DK:          12 ( $ -n)      kr. -16,34
'       de-AT:           9 ( -$ n)        -€ 16,34
'       de-CH:           2 (  $-n)       Fr.-16.34
'       de-DE:           8 ( -n $)        -16,34 €
'       de-LI:           2 (  $-n)       CHF-16.34
'       de-LU:           8 ( -n $)        -16,34 €
'       dsb-DE:          8 ( -n $)        -16,34 €
'       luy-KE:         16 ( $- n)      Ksh- 16.34
'
' The result shown here happens only if using ICU.
' Apps that use NLS, for example, .NET Framework apps, might see different results.
' Globalization data can change, which would also change these results.

注解

属性 CurrencyNegativePattern 与“C”标准格式字符串一起使用,以定义负货币值的模式。 有关详细信息,请参阅标准数值格式字符串。 此属性具有下表中的值之一。 符号“$”是 , CurrencySymbol符号“-”是 NegativeSign,是 n 一个数字。

“值” 关联的模式
0 ($n)
1 -$n
2 $-n
3 $n-
4 (n$)
5 -n$
6 n-$
7 n$-
8 -n $
9 -$ n
10 n $-
11 $ n-
12 $ -n
13 n- $
14 ($ n)
15 (n$)
16 $- n

适用于

另请参阅