NumberFormatInfo.CurrencyNegativePattern 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置负货币值的格式模式。
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)”,其中“$”是 CurrencySymbol,n
是一个数字。
例外
属性设置为小于 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 |