फ़ॉर्मेट करने के लिए का उपयोग कर रहा HexConverter - Unify Community WikiFormatException जब "एक्स" हेक्साडेसिमल
string hex = color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2");
से निम्नलिखित कोड लिया यह मैं अपवाद देता है:
FormatException: The specified format 'X2' is invalid
मैं "D"
उपयोग करने के लिए तो कोशिश की लेकिन फिर भी यह एक फेंक दिया त्रुटि। फ्लोट नंबर स्वरूपण के लिए काम करने वाली एकमात्र चीज "F
है।
घोषणा पर जाएं असेंबली ब्राउज़र में mscorlib.dll/System/Single.ToString (स्ट्रिंग) से पता चलता है - अब तक अच्छा लगता है।
के लिए गुगलिंग monodevelop स्ट्रिंग प्रारूप हेक्स या इसी तरह के खोज तारों ने मोनो डेवलपमेंट में प्रतिबंधों के बारे में कुछ भी दिलचस्प नहीं दिखाया।
तो क्या कोई सरल हेक्स वैल्यू रूपांतरण प्राप्त करने से पहले, तैयार करने, शुरू करने, ... के लिए कुछ भी है?
[अपडेट] रंग एकता में एक struct है:
public struct Color
{
public float r;
public float g;
public float b;
// ...
DTB का जवाब ले रहा है मैं अंत में का उपयोग कर काम कर समझ में आ गया:
int r = (int)(color.r * 256);
int g = (int)(color.g * 256);
int b = (int)(color.b * 256);
string hex = string.Format ("{0:X2}{1:X2}{2:X2}", r, g, b);
तो मैं इस तथ्य को याद है कि Color
को परिभाषित करता है अपने float
के रूप में int
के बजाय घटक और अभिन्न प्रकार की बात डीटीबी का उल्लेख किया गया है।
[अपडेट-2] अधिक सुरुचिपूर्ण समाधान:
Color32 color32 = color;
string hex = color32.r.ToString ("X2") + color32.g.ToString ("X2") + color32.b.ToString ("X2");
हम रंग की अपनी घोषणा देख सकते हैं? या यह सीधे विकी बना है? – emd
एक साधारण परीक्षण के रूप में, मैंने 'System.Drawing.Color.White.R.ToString (" X2 ")' का उपयोग किया और स्ट्रिंग रिटर्न 'एफएफ' के रूप में प्राप्त किया। तो हाँ, आपके उदाहरण में "रंग" क्या है? – DonBoitnott
@emd यह एकता की 'रंग' संरचना है। विकी में वे 'Color32' का उपयोग करते हैं जो अलग है। डीटीबी के बयान के साथ संयोजन 'सिंगल' के बारे में यह बिंदु था। धन्यवाद :-) – Kay