2009-06-04 15 views
8

मैं एक प्रतीक (स्विस फ्रैंक - डी-सीएच) को एक प्रतीक (सीएचएफ) के साथ प्रारूपित करने की कोशिश कर रहा हूं जो कि अलग है। नेट संस्कृति (एसएफआर।) है। समस्या यह है कि संस्कृति के लिए संख्याफॉर्मेट केवल पढ़ने के लिए है।Readonly CultureInfo.NumberFormat पर CurrencySymbol कैसे सेट करें?

क्या संस्कृतिइन्फो और नंबरफॉर्मैट का उपयोग करके इस समस्या को हल करने का कोई आसान तरीका है? क्या कोई तरीका है कि मैं CurrencySymbol को ओवरराइड कर सकता हूं?

उदाहरण: मंद newCInfo रूप CultureInfo = CultureInfo.GetCultureInfo (2055) newCInfo.NumberFormat.CurrencySymbol = "CHF" MyCurrencyText.Text = x.ToString ("सी", newCInfo)

इस त्रुटि होगा NumberFormat.CurrencySymbol को सेट करने पर क्योंकि नंबरफॉर्मेट केवल पढ़ने के लिए है।

धन्यवाद!

उत्तर

12

Clone पर CultureInfo पर कॉल करें, जो एक परिवर्तनीय संस्करण बनाएगा, फिर मुद्रा चिह्न सेट करें।

आप अधिक विशिष्ट हो सकते हैं: NumberFormatInfo लाएं और केवल क्लोन करें। यह थोड़ा और सुरुचिपूर्ण, आईएमओ है, जब तक आपको संस्कृति में कुछ और बदलने की जरूरत नहीं है। सी # में

उदाहरण:

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)); 
    } 
} 
+0

सुंदर, और बस सरल। मैं इसे याद करने के लिए खुद को लात मार सकता था। धन्यवाद! – sugarcrum

संबंधित मुद्दे