EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: Convert.ToInt32(employeeNumberTextBox.Text),
मैं अक्सर अपने आप को इस तरह काम करने के लिए इच्छुक लगता है (EmployeeNumber
एक Nullable<int>
है के रूप में उस पर एक संपत्ति है एक LINQ करने वाली एसक्यूएल dbml आपत्ति जहां स्तंभ शून्य मान की अनुमति देता है)। दुर्भाग्यवश, कंपाइलर का मानना है कि "नल 'और' int '' के बीच कोई अंतर्निहित रूपांतरण नहीं है, भले ही दोनों प्रकार एक असाइनमेंट ऑपरेशन में मान्य हो जाएं, जो कि खुद के लिए एक निरर्थक int है।Nullable <value> प्रकारों के साथ सशर्त ऑपरेटर असाइनमेंट?
नल कोलेसिंग ऑपरेटर एक विकल्प नहीं है जहां तक मैं इनलाइन रूपांतरण की आवश्यकता के कारण देख सकता हूं। टेक्स्ट स्ट्रिंग अगर यह शून्य नहीं है।
जहां तक मुझे पता है कि ऐसा करने का एकमात्र तरीका एक कथन का उपयोग करना है और/या इसे दो चरणों में असाइन करना है। इस विशेष मामले में मुझे यह बहुत निराशाजनक लगता है क्योंकि मैं ऑब्जेक्ट प्रारंभकर्ता सिंटैक्स का उपयोग करना चाहता था और यह असाइनमेंट प्रारंभिक ब्लॉक में होगा ...
कोई भी एक और अधिक सुरुचिपूर्ण समाधान जानता है?
एरिक लिपर्ट की संबंधित ब्लॉग प्रविष्टि की जांच करें: [टाइप अनुमान वज़न, भाग एक] (http://blogs.msdn.com/ericlippert/archive/2006/05/24/type-inference-woes-part -one.aspx) – CodesInChaos
[कंपाइलर त्रुटि ** सीएस 0173 **] (http://msdn.microsoft.com/en-us/library/vstudio/hb47kt2f%28v=vs.120%29.aspx) मुझे यहां लाया। – DavidRR