के साथ कुछ बड़े पैमाने पर भारी समस्या में गिर गया है, हाल ही में मैं एक ऐसे सॉफ्टवेयर का विकास कर रहा हूं जो किसी वेबसाइट से XML जानकारी को पार्स और प्रदर्शित करता है। काफी सही है?मुझे लगता है कि NullReferenceExceptions
मुझे NullReferenceExceptions के लोड मिल रहे हैं। उदाहरण के लिए, इस विधि:
private void SetUserFriends(List<Friend> list)
{
int x = 40;
int y = 3;
if (list != null)
{
foreach (Friend friend in list)
{
FriendControl control = new FriendControl();
control.ID = friend.ID;
control.URL = friend.URL;
control.SetID(friend.ID);
control.SetName(friend.Name);
control.SetImage(friend.Photo);
control.Location = new Point(x, y);
panel2.Controls.Add(control);
y = y + control.Height + 4;
}
}
}
मैं था एक बदसूरत पाप के रूप में, तो वास्तविक foreach पाश के आसपास आदेश एक अपवाद को रोकने के लिए रैप करने के लिए।
मुझे लगता है कि मैं वास्तव में समस्या को ठीक करने के बजाय एक फ्लैट टायर पर बांदाइड्स डाल रहा हूं। क्या इस समस्या से निपटने का कोई तरीका है? हो सकता है कि एक प्रोग्राम मुझे प्रोग्रामिंग पैटर्न के बारे में पढ़ा जाए या क्या नहीं?
वास्तव में, मैं खो गया हूं। मैं शायद गलत सवाल पूछ रहा हूँ।
आपको उस कोड को देखना चाहिए जो * कॉलिंग * 'SetUserFriends' है। यदि आप मानते हैं कि दोस्तों की सूची 'शून्य' नहीं होनी चाहिए (जो एक उचित पर्याप्त धारणा है, तो मैं कहूंगा), तो बग जो कुछ भी * गुजर रहा है * में है। जब आप अपवाद प्राप्त करते हैं तो कॉल स्टैक को देखने के लिए डीबगर का उपयोग करें। –
बेहतर जांच करें कि आपके पास खाली सूची वस्तु के बजाय एक शून्य सूची संदर्भ क्यों है। – BenV
यह एक साइड नोट है, लेकिन मैं IENumerable को स्वीकार करने के लिए बहस करता हूं, ताकि विधि को कॉलर को किसी विशेष संग्रह वर्ग का उपयोग करने की आवश्यकता न हो। –