दिलचस्प पोस्ट
एंड्रॉइड.एफ़। फ्रेगमेंट और एंड्रॉइड। Support.v4.app.Fragment के बीच का अंतर मैं PostgreSQL ट्रिगर से ईमेल कैसे भेज सकता हूं? सिग्नलआर – एक विशिष्ट उपयोगकर्ता को संदेश भेजने (IUserIdProvider) * न्यू 2.0.0 * जावा में प्राथमिकताओं, हमेशा प्राथमिकता सहित स्थानीय चर क्यों होना चाहिए? स्थानीय स्टोरेज के आकार को कैसे खोजें MySQL से समय-समय पर PHP के साथ किसी अन्य स्वरूप में परिवर्तित करें को बढ़ावा देने के लाभ क्या हैं: noncopyable जावा में बेनामी (आंतरिक) वर्ग कैसे उपयोग किए जाते हैं? एक एक्लिप्स जावा लाइब्रेरी के लिए एक जार जोड़ना क्या Xcode / Iphone सिम का उपयोग करने वाले कई आईफ़ोन्स को अनुकरण करने का एक तरीका है? मैन्युअल रूप से Google Chrome में एक उपयोगकर्ता की जानकारी जोड़ने अग्रणी अंडरस्कोर के साथ आईओएस में संश्लेषित गुणों का नाम क्यों बदलें? मुझे अपने विधानसभाओं को जीएसी में कब तैनात करना चाहिए? अपलोड ग्राहक विफल होने पर ईमेल क्लाइंट से अटैचमेंट को छोड़ देता है PostgreSQL में एक्सील्यूड के साथ आसन्न / ओवरलैपिंग प्रविष्टियों को रोकना

Nullable <value> प्रकारों के साथ सशर्त ऑपरेटर असाइनमेंट?

EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : Convert.ToInt32(employeeNumberTextBox.Text), 

मैं अक्सर खुद को इस तरह से काम करना चाहता हूं ( EmployeeNumber संख्या Nullable<int> क्योंकि यह एक LINQ-to-SQL dbml ऑब्जेक्ट पर एक संपत्ति है जहां कॉलम शून्य मान की अनुमति देता है)। दुर्भाग्य से, कंपाइलर का मानना ​​है कि '' रिक्त और 'इंट' 'के बीच कोई अंतर्निहित रूपांतरण नहीं है, भले ही दोनों तरह की एक असाइनमेंट ऑपरेशन में अपने स्वयं के एक नल योग्य int पर वैध होगा

शून्य सहयोगी ऑपरेटर एक विकल्प नहीं है, जहां तक ​​मैं उस इनलाइन रूपांतरण की वजह से देख सकता हूं जो उस पर होने की आवश्यकता होती है। पाठ स्ट्रिंग अगर यह रिक्त नहीं है।

जहां तक ​​मुझे पता है कि ऐसा करने का एकमात्र तरीका है अगर एक बयान और / या इसे दो चरणों में आवंटित करना है इस विशेष मामले में मुझे यह बहुत निराशाजनक लगता है क्योंकि मैं ऑब्जेक्ट प्रारंभिक वाक्यविन्यास का उपयोग करना चाहता था और यह असाइनमेंट प्रारंभिक ब्लॉक में होगा …

किसी को भी एक और अधिक सुरुचिपूर्ण समाधान पता है?

वेब के समाधान से एकत्रित समाधान "Nullable <value> प्रकारों के साथ सशर्त ऑपरेटर असाइनमेंट?"

समस्या इसलिए होती है क्योंकि सशर्त ऑपरेटर को अभिव्यक्ति के प्रकार का निर्धारण करने के लिए मान का उपयोग कैसे किया जाता है (इस स्थिति में निर्दिष्ट) पर नज़र नहीं आता – सिर्फ सही / गलत मान इस मामले में, आपके पास एक रिक्त और एक इंट32 है , और प्रकार निर्धारित नहीं किया जा सकता है (वास्तविक कारण हैं क्योंकि यह केवल नल योग्य <Int32> ) नहीं मान सकता है

यदि आप वास्तव में इसे इस तरह से उपयोग करना चाहते हैं, तो आपको अपने में से किसी एक मूल्य को Nullable <Int32> डालना होगा, तो सी # प्रकार को हल कर सकते हैं:

 EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? (int?)null : Convert.ToInt32(employeeNumberTextBox.Text), 

या

 EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : (int?)Convert.ToInt32(employeeNumberTextBox.Text), 

मुझे लगता है कि उपयोगिता विधि इस क्लीनर को बनाने में मदद कर सकती है।

 public static class Convert { public static T? To<T>(string value, Converter<string, T> converter) where T: struct { return string.IsNullOrEmpty(value) ? null : (T?)converter(value); } } 

फिर

 EmployeeNumber = Convert.To<int>(employeeNumberTextBox.Text, Int32.Parse); 

जबकि एलेक्स आपके प्रश्न का सही और समीपवर्ती उत्तर प्रदान करता है, मैं TryParse का उपयोग करना पसंद करता TryParse :

 int value; int? EmployeeNumber = int.TryParse(employeeNumberTextBox.Text, out value) ? (int?)value : null; 

यह सुरक्षित है और अमान्य इनपुट के मामलों के साथ ही आपके खाली स्ट्रिंग परिदृश्य का ध्यान रखता है। अन्यथा यदि उपयोगकर्ता 1b जैसा कुछ इनपुट करता है तो उन्हें Convert.ToInt32(string) कारण अप्रतिबंधित अपवाद के साथ एक त्रुटि पेज के साथ प्रस्तुत किया जाएगा।

आप कन्वर्ट के आउटपुट को कास्ट कर सकते हैं:

 EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : (int?)Convert.ToInt32(employeeNumberTextBox.Text) 
 //Some operation to populate Posid.I am not interested in zero or null int? Posid = SvcClient.GetHolidayCount(xDateFrom.Value.Date,xDateTo.Value.Date).Response; var x1 = (Posid.HasValue && Posid.Value > 0) ? (int?)Posid.Value : null; 

संपादित करें: ऊपर के संक्षिप्त विवरण, मैं Posid का मान प्राप्त करने की कोशिश कर रहा था (यदि इसकी गैर-अनन्य int और 0 से अधिक मूल्य वाला) varibale X1 मुझे Posid.Value पर (int?) का उपयोग करना था। Posid.Value ऑपरेटर को कोई संकलन त्रुटि नहीं फेंकने के लिए। बस एक FYI GetHolidayCount एक WCF विधि है जो null या किसी भी संख्या दे सकता है। उम्मीद है की वो मदद करदे