سؤال

أحاول تهيئة العملة (Swiss Frank - de-de-dech) برمز (CHF) يختلف عن ما هو ثقافة .NET الافتراضية (SFR.). المشكلة هي أن numberformat للثقافة هو إعادة التأثير.

هل هناك طريقة بسيطة لحل هذه المشكلة باستخدام cultureinfo و numberformat؟ هل هناك بعض الطرق يمكنني تجاوز currencysymbol؟

مثال:

Dim newCInfo As CultureInfo = CultureInfo.GetCultureInfo(2055)
newCInfo.NumberFormat.CurrencySymbol = "CHF"
MyCurrencyText.Text = x.ToString("c",newCInfo)

سيؤدي هذا إلى خطأ في إعداد NumberFormat.CurrencySymbol لأن NumberFormat يكون **ReadOnly**.

شكرا!

هل كانت مفيدة؟

المحلول

يتصل Clone على ال CultureInfo, ، والتي ستقوم بإنشاء نسخة قابلة للتغيير، ثم قم بتعيين رمز العملة.

قد تكون أكثر تحديدا: جلب NumberFormatInfo و فقط استنساخ ذلك. إنه أكثر أناقة قليلا، IMO، ما لم تكن بحاجة إلى تغيير أي شيء آخر في الثقافة.

مثال في C #:

using System;

using System.Globalization;

class Test
{
    static void Main()
    {
        CultureInfo original = CultureInfo.GetCultureInfo(2055);
        NumberFormatInfo mutableNfi = (NumberFormatInfo) original.NumberFormat.Clone();
        mutableNfi.CurrencySymbol = "X";
        Console.WriteLine(50.ToString("C", mutableNfi));
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top