2010-03-23 10 views
5

मैं जावा में प्रोग्रामिंग किया गया है और सी सब मेरे विश्वविद्यालय में वर्ष, लेकिन अब मैं सी # सीख रहा हूँ और एक छोटे से आवेदन के निर्माण, और मैं मिल गया है मुसीबतों इस के साथ:सशर्त या सी # में

if (taxonType.Equals(null) ¦¦ taxonID == -1) 

मुझे इस सशर्त के लिए एक लाल रेखा रेखा मिलती है, और मुझे वास्तव में पता नहीं क्यों, क्योंकि मैंने जो देखा है उसके अनुसार यह ठीक होना चाहिए, लेकिन ऐसा नहीं है। क्या मुझे कुछ याद आ रही है?

आप सभी पहले से धन्यवाद, विक्टर


आप सभी धन्यवाद !!! मैं इसके बारे में पागल हो रहा था। बात यह है कि मैं स्पेनिश हूं और मुझे पाइप कुंजी रखने के लिए उपयोग किया जाता है बिल्कुल उसी स्थान पर जहां अमेरिकी कॉन्फ़िगरेशन में है ... मैं इसे देख रहा था। अजीब, लेकिन मैंने सोचा कि यह वही था ...

तेज उत्तर के लिए धन्यवाद !! विक्टर

+0

रूप

और बनाने टैक्सोन? – Marek

उत्तर

11
if (taxonType == null || taxonID == -1) 

सवाल का जवाब देने के साथ ही सही कोड के लिए संशोधित

+2

जैसा कि पहले से ही अन्य उत्तरों में कहा गया है, यदि टैक्सन टाइप वास्तव में एक शून्य संदर्भ है, तो आपका परीक्षण फेंक देगा ... – Seb

+1

कोड अपडेट किया गया था, मूल रूप से कोड के शेष को ठीक करने के बजाय पूछे गए प्रश्न का उत्तर दे रहा था।यदि वह एप्लिकेशन भेजता है तो मैं इसे भी पूरा कर सकता हूं;) – rrrr

4

पूछा मैं taxonType और taxonID के प्रकार पता नहीं है, लेकिन यह इस तरह काम करना चाहिए:

if (taxonType == null || taxonID == -1) 
5

क्या '|' है? क्या आप वाकई '|' के समान चरित्र हैं?

+1

एक टिप्पणी होना चाहिए। –

+1

@ फिलिप कभी-कभी एक प्रश्न लंबे हवादार उत्तर से बेहतर उत्तर प्रदान करता है, खासकर अगर मूल प्रश्न को स्पष्ट रूप से phrased किया गया था ("मुझे लाल अंडरलाइन मिलती है") – Marek

2

ऐसा लगता है कि आप कुछ विशेष चरित्र का उपयोग कर रहे हैं, जिसे डिफ़ॉल्ट पाइप (|) वर्ण के रूप में पहचाना नहीं गया है। शायद आपको अपनी कीबोर्ड सेटिंग्स जांचनी चाहिए?

1

आपको "||" का उपयोग करना चाहिए "||" के बजाय।

2

समस्या यह है कि यदि टैक्सन टाइप वास्तव में शून्य है तो उस पर इक्वल्स फ़ंक्शन का उपयोग करके NullReferenceException फेंक देगा। बराबर

2

के बजाय == के साथ जाएं यदि टैक्सन टाइप वास्तव में शून्य है तो यह अपवाद फेंक देगा क्योंकि आप इसकी समान विधि को कॉल करने का प्रयास करेंगे।

यदि आपने कहा कि (taxOnType == null) || taxonID == -1) आप ठीक होंगे।

1

शून्य के लिए आपका परीक्षण .Equals का उपयोग नहीं करना चाहिए, क्योंकि यदि वस्तु शून्य है, तो सदस्य तक पहुंचने का प्रयास NullReferenceException फेंक देगा।

उपयोग:

if (taxonType == null || taxonID == -1) 

यह भी स्पष्ट नहीं है, तो आप सही पाइप चरित्र | उपयोग कर रहे हैं के रूप में तुम्हारा ¦ रूप में दिखाई देता है।

+0

हां, यह है, मैंने बराबर कोशिश की क्योंकि टैक्सन टाइप एक स्ट्रिंग थी, लेकिन मेरा पहला प्रयास वह कोड था जिसे आपने लिखा था। जैसे ही मैंने लाल रेखांकन प्राप्त किया था, मैंने यह देखने के लिए विभिन्न प्रकार की स्थितियों की कोशिश की कि क्या मुझे यह गलत हो रहा है ... धन्यवाद :) – vikitor

1

अगर (String.IsNullOrEmpty (taxonType) || taxonID < 0) एक struct

क्या सटीक त्रुटि आप "लाल रेखांकन" का वर्णन हो रही है
+0

स्ट्रिंग। आईएसनुलऑरफेक्टी केवल तारों के उपयोग के लिए है। हम नहीं जानते कि टैक्सन टाइप किस प्रकार है। इसके अलावा String.IsNullOrEmpty सत्य वापस आ जाएगा अगर टैक्सन टाइप "" है। यह वह व्यवहार नहीं है जिसे हम चाहते हैं। इसके बजाय taxonType == null का उपयोग करें। टैक्सोनिड <0 पर्याप्त नहीं है। –

+0

टैक्सन टाइप एक स्ट्रिंग है, क्योंकि मैं इसे एक खोज फ़ॉर्म बनाने के लिए उपयोग कर रहा हूं, अगर टैक्सन टाइप नहीं किया गया है तो टैक्सन टाइप को शून्य पर सेट किया गया है और टैक्सोनिड -1 है यदि फॉर्म में कोई टैक्सोनिड नहीं है ... यह सिर्फ नियंत्रण प्रवाह को हटा दें। वैसे भी सलाह के लिए धन्यवाद, यह मुझे उन अनुप्रयोगों के साथ अपने आवेदन पर पुनर्विचार करने में मदद करता है जिन्हें मैं पहले नहीं जानता था या सोचा था :) – vikitor

संबंधित मुद्दे