c# - Why does .ToString() on a null string cause a null error, when .ToString() works fine on a nullable int with null value? -


चयनित आईटम के दो फ़ील्ड हैं:

  • int ? इस उदाहरण में, _cost और _serialNumber
  • / कोड> का चुने हुए आईटम दोनों नल हैं मैं उनके गुणों के माध्यम से selectedItem के खेतों के माध्यम से पढ़ रहा हूं, और अपने मूल्यों के साथ टेक्स्ट बॉक्स भरता हूं, जब ...
      TextBox1.Text = selectedItem.Cost.ToString (); // कोई त्रुटि नहीं TextBox2.Text = selectedItem.SerialNumber.ToString (); // त्रुटि   

    मैं समझता हूं कि serialnumber.ToString () अनावश्यक है (क्योंकि यह पहले से ही एक स्ट्रिंग है), लेकिन मुझे समझ में नहीं आ रहा है कि यह क्यों कारण है अपवाद:

    नल योग्य ऑब्जेक्ट का मान होना चाहिए।

    • int? _cost नल है, और मेरे पास मूल्य नहीं है, फिर भी यह मुझे अपवाद नहीं देता है।
    • स्ट्रिंग _ शीतल संख्या नल योग्य है, और इसमें कोई मान नहीं है, फिर भी यह करता है मुझे अपवाद दे।

      यह इस पर छूता है, लड़का अनिवार्य रूप से एक ही बात पूछ रहा है, लेकिन कोई निश्चित जवाब नहीं है, और यह भी क्यों नहीं एक nullable int समझाता है? उदाहरण के लिए, क्या मैं null स्ट्रिंग पर .toString () का उपयोग कर सकता हूँ लेकिन नल स्ट्रिंग पर नहीं?

      क्योंकि स्ट्रिंग प्रकार का null वास्तव में कुछ भी नहीं है, स्मृति में कोई वस्तु नहीं है।
      लेकिन int? प्रकार (नल योग्य) यहां तक ​​कि null पर सेट मान के साथ कुछ ऑब्जेक्ट को भी अंक देता है।
      अगर आप जेफरी रिचटर की "सीएलआर के माध्यम से सी #" पढ़ते हैं तो आपको पता चल जाएगा कि रिक्त प्रकार सिर्फ मुखौटा वर्ग हैं

      नल योग्य प्रकार के बारे में जानने के लिए चेक करें।

Comments

Popular posts from this blog

java - NullPointerException for a 2d Array -

python - Assemble mpeg file unable to play in mediaplayer -

c# - NameSpace Manager or XsltContent to parse aspx page -