दिलचस्प पोस्ट
OdbcConnection चीनी अक्षरों को "?" के रूप में लौट रहा है जावास्क्रिप्ट और regex: विभाजित स्ट्रिंग और विभाजक रखें कनाडा के पोस्टल कोड सत्यापन सी + + हैडर फ़ाइलें, कोड पृथक्करण एक पायथन ऐप से Google खोज एक जेएसओएन स्ट्रिंग को एक हैशमैप में कनवर्ट करें (फ़ंक्शन () {}) () क्या जावास्क्रिप्ट में बना है? .NET डेटा संरचनाएं: सरणी सूची, सूची, हैशटेबल, डिक्शनरी, सॉर्टेड सूची, सॉर्टेडेडडेशन – स्पीड, मेमोरी, और प्रत्येक का उपयोग कब किया जाए? मैक ओएस एक्स पर पायथन 3 के लिए पीईपी कैसे स्थापित करें? एंड्रॉइड लॉलीपॉप टूलबार: स्क्रॉल करते समय उपकरण पट्टी को छुपाने / दिखाने के लिए कैसे? क्या भाषण इनपुट के लिए सीधे भाषणकर्ता API का उपयोग करने का कोई तरीका है? आईओएस 8 आईपैड पर यूआईएक्टिविटी वीव कंट्रोलर क्रैशिंग ASCII या बाइनरी के रूप में फ़ाइल सामग्री की पहचान कैसे करें मैं एक ऐसी तालिका के लिए एसक्यूएल कैसे लिख सकता हूँ जो MySQL में संरक्षित कीवर्ड के समान नाम को साझा करता है? भविष्य की एक सूची पर प्रतीक्षा कर रहा है

एन्यूम को रिक्त करने के लिए कैसे करें

मेरे पास एक गणक है

string name; public enum Color { Red, Green, Yellow } 

भार पर लोड करने के लिए इसे कैसे सेट करें

 name = ""; Color color = null; //error 

संपादित: मेरा बुरा, मैंने इसे ठीक से नहीं समझाया। लेकिन सभी नल से संबंधित जवाब सही हैं। मेरी स्थिति यह है कि क्या, अगर मैं नाम के अन्य तत्वों के साथ एक कक्षा में एन्यूम के लिए मिला / सेट करता हूं, तो पेज लोड पर मैं क्लास को आरंभ करता हूं और मूल्यों को रिक्त करने की कोशिश करता हूं। यहां परिदृश्य है (कोड सी # में है):

 namespace Testing { public enum ValidColors { Red, Green, Yellow } public class EnumTest { private string name; private ValidColors myColor; public string Name { get { return name; } set { name = value; } } public ValidColors MyColor { get { return myColor; } set { myColor = value; } } } public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { EnumTest oEnumTest = new EnumTest(); oEnumTest.Name = ""; oEnumTest.MyColor = null; //??? } } } 

फिर नीचे दिए गए सुझावों का उपयोग करते हुए मैंने उपरोक्त कोड को इसे प्राप्त करने और सेट विधियों के साथ काम करने के लिए बदल दिया। मुझे बस "जोड़ना" चाहिए? निजी Enum चर की घोषणा के दौरान EnumTest कक्षा में और प्राप्त / सेट विधि में:

 public class EnumTest { private string name; private ValidColors? myColor; //added "?" here in declaration and in get/set method public string Name { get { return name; } set { name = value; } } public ValidColors? MyColor { get { return myColor; } set { myColor = value; } } } 

सुंदर सुझावों के लिए धन्यवाद

वेब के समाधान से एकत्रित समाधान "एन्यूम को रिक्त करने के लिए कैसे करें"

आप या तो "?" का उपयोग कर सकते हैं एक नल योग्य प्रकार के लिए ऑपरेटर

 public Color? myColor = null; 

या उन मानकों के लिए मानक अभ्यास का उपयोग करें जो एन्यूम (उर्फ 0) में प्रथम मान होने से रिक्त नहीं हो सकता डिफ़ॉल्ट मान हो उदाहरण के लिए रंग के मामले में कोई भी नहीं

 public Color myColor = Color.None; 

यदि यह सी # है, तो यह काम नहीं करेगा: एंनाम मूल्य प्रकार हैं, और null नहीं हो सकते

किसी None सदस्य को जोड़ने के लिए सामान्य विकल्प हैं:

 public enum Color { None, Red, Green, Yellow } Color color = Color.None; 

… या Nullable का उपयोग करने के लिए:

 Color? color = null; 

अपनी चर को रिक्त करें पसंद:

 Color? color = null; 

या

 Nullable<Color> color = null; 

एक enum एक "मूल्य" प्रकार है जो सी # में है (इसका अर्थ है कि एन्यूम को मूल्य के संग्रह के संदर्भ के रूप में नहीं माना जाता है)। आप शून्य प्रकारों को रिक्त करने के लिए सेट नहीं कर सकते (चूंकि नल केवल संदर्भ प्रकारों के लिए उपयोग किया जाता है)

कहा जा रहा है कि आप का उपयोग कर सकते हैं Nullable<T> वर्ग जो कि मूल्य प्रकारों को लपेटते हैं, जैसे कि आप उन्हें रिक्त करने के लिए सेट कर सकते हैं, जांचें कि क्या यह HasValue और इसकी वास्तविक Value प्राप्त करें (वे दोनों विधियों पर Nullable<T> वस्तुएं हैं

 name = ""; Nullable<Color> color = null; //This will work. 

आप उपयोग कर सकते हैं एक शॉर्टकट भी है:

 Color? color = null; 

यह Nullable<Color> ;

मैं सी ++ यहाँ मान रहा हूँ यदि आप सी # का उपयोग कर रहे हैं, तो उत्तर संभवत: समान है, लेकिन सिंटैक्स थोड़ा अलग होगा। Enum int मानों का एक सेट है यह एक ऑब्जेक्ट नहीं है, इसलिए आपको उसे रिक्त करने के लिए सेट नहीं करना चाहिए। किसी नल को सेट करने का मतलब है कि आप शून्य को संबोधित करने के लिए किसी ऑब्जेक्ट पर एक पॉइंटर इंगित कर रहे हैं आप वास्तव में एक int के साथ ऐसा नहीं कर सकते आप किसी इंट के साथ क्या करना चाहते हैं, यह उस मूल्य के लिए सेट करना है जिसे आप आमतौर पर ऐसा नहीं करते हैं ताकि आप फोन कर सकें अगर यह एक अच्छा मूल्य है या नहीं। तो, अपने रंग को -1 में सेट करें

 Color color = -1; 

या, आप अपनी एन्यूएम 1 पर शुरू कर सकते हैं और इसे शून्य पर सेट कर सकते हैं। यदि आप रंग को शून्य के रूप में सेट करते हैं, क्योंकि यह अभी ठीक है, आप इसे "लाल" पर सेट कर रहे हैं क्योंकि लाल आपके एन्यूम में शून्य है।

इसलिए,

 enum Color { red =1 blue, green } //red is 1, blue is 2, green is 3 Color mycolour = 0;