.NET के कुछ बीटा संस्करण में शामिल होने के अलावा ... जो, रोमांचक होने पर जोखिम भरा होता है और वास्तव में आपके प्रश्न का उत्तर नहीं देता है।
अब दुर्भाग्यवश सबसे अच्छी बात यह है कि आप अपने कोड पर इंटेलिसेंस टिप्पणियां जोड़ सकते हैं जो चेतावनी न देने की चेतावनी देते हैं।
/// <summary>
/// This Foo method does Bar to something.
/// </summary>
/// <param name="myRequiredString">required, do NOT pass nulls. I really really mean it!</param>
public void Foo(String myRequiredString)
{
if (myRequiredString == null)
{
throw new ArgumentNullException("myRequiredString", "It said required in the name of the argument, dummy!");
}
}
वहाँ बाहर कुछ hackish solutions जहां लोगों को एक सामान्य NonNullable struct को लागू किया है होते हैं, लेकिन लब्बोलुआब यह है कि आप क्या चाहते हैं के लिए दृश्य स्टूडियो "फू (शून्य)" आपके द्वारा लिखे जाने न जाने के लिए और चेतावनी देने के लिए है यदि आप करते हैं या आपको कुछ कंपाइलर त्रुटि देते हैं, और तथ्य 99.99% विधि कॉल के लिए है, जहां कुछ शून्य नहीं होना चाहिए, तो आपको == नल चेक करना होगा और किसी भी तरह से ArgumentNullException को फेंकना होगा, क्योंकि आप पता नहीं है कि रनटाइम तक तर्क शून्य है। यहां तक कि अगर आप कम से कम सी # में खोज रहे थे तो संकलक को शून्य जांच जोड़नी होगी और वहां ArgumentNullException फेंकना होगा।
मुझे लगता है कि मैं कह रहा हूं कि आप जो चाहते हैं वह है "सिंटेक्टिक चीनी" आपकी उंगलियों को कुछ आंदोलन बचाने के लिए है। अभी के लिए यदि आप टाइपिंग के बीमार हैं तो मैं एक कोड स्निपेट बनाने की सिफारिश करता हूं।
स्रोत
2009-07-17 14:27:04
यह विजुअल स्टूडियो 2010 बीटा में सी # 4.0 में भी लागू किया गया है। –
डीबीसी आपकी विधि में जांच करने से अलग कैसे है कि तर्क शून्य है या नहीं, और एक ArgumentNullException f.i को फेंक रहा है। जब तर्क शून्य है? –
कार्यात्मक रूप से, यह वास्तव में नहीं है।संवैधानिक रूप से, हालांकि, यह उचित गुण के साथ इसे सजाने के द्वारा विधि के बाहरी इंटरफ़ेस से इरादा स्पष्ट करता है। –