मैं किताब "व्यावसायिक एफ # 2.0" पढ़ रहा हूँ अशक्त संदर्भ अपवाद रोकूँ लेखक निम्न कोड से पता चलताएफ # विकल्प ... वे वास्तव में
let a string : option = None
if a.IsNone then
System.Console.WriteLine("a is none")
else
System.Console.WriteLine("a is some");;
तो कहते हैं
"इस उपयोग करता है विकल्प के नल के उपयोग से काफी बेहतर है और रनटाइम पर फेंकने वाले अपवादों के एक महत्वपूर्ण स्रोत को हटाने की दिशा में एक लंबा रास्ता तय करता है "
ठीक है। तो मैं लिखने
System.Console.WriteLine(a.GetType());;
और मैं
System.NullReferenceException मिल: ऑब्जेक्ट संदर्भ एक वस्तु का एक उदाहरण के लिए सेट नहीं। System.Object.GetType() पर पर। $ FSI_0008.main @()
त्रुटि के कारण बंद कर दिया और मैं 'संयुक्त राष्ट्र की तरह कर रहा हूँ !!! "
कैसे वास्तव में एक
कर रही हैif a.isSome then
do bla bla
any different from
if a != null then
do bla bla
तो मैं कैसे प्रोग्रामर NullPointers से बचाया जा रहा है नहीं दिख रहा है
पुनश्च:। NullPointerException मुझे अतीत में दु: ख का कारण बना हुआ है बहुत
वह कोड जो आप उस पुस्तक से उद्धृत कर रहे हैं वह खराब शैली है। ऐसा मत करो। 'कोई नहीं' से शून्य संदर्भ अपवाद दुर्भाग्यपूर्ण है। नो-नल का लाभ एफ # के एमएल सबसेट पर लागू होता है जहां यह वास्तव में बहुत मदद करता है। –