मुझे पता है कि यह एक बहुत बेवकूफ सवाल की तरह लग सकता है लेकिन मैं इस पर जवाब से बाहर हूं। हमारे उपयोगकर्ताओं में से एक ने हाल ही में एक बग की सूचना दी और मुझे एहसास हुआ कि कोड का पुराना बिट != string.Empty
का उपयोग कर रहा था, बल्कि IsNullOrEmpty()
। मैंने इसे IsNullOrEmpty()
के साथ तय किया है और अब यह ठीक चल रहा है, लेकिन मैं वास्तव में समस्या को समझना चाहता हूंस्ट्रिंग्स की तुलना में! = ऑपरेटर अलग-अलग परिणाम दे रहा है?
बात यह है कि कुछ मशीनों पर कोड का सटीक थोड़ा अलग चलता है। मैं मूल रूप से एक वस्तु है: context["MODE"]
, जो खाली होना चाहिए।
contextBuilder.AppendLine("MODE: |" + context["MODE"] + "|");
contextBuilder.AppendLine("MODE != string.Empty: " + (context["MODE"] != string.Empty));
contextBuilder.AppendLine("MODE TRIM != string.Empty: " + (context["MODE"].ToString().Trim() != string.Empty));
contextBuilder.AppendLine("MODE.IsNullOrEmpty: " + string.IsNullOrEmpty(context["MODE"].ToString()));
contextBuilder.AppendLine("MODE.TRIM.IsNullOrEmpty: " + string.IsNullOrEmpty(context["MODE"].ToString().Trim()));
यहाँ है कि क्षेत्र विवरण के बारे में अपने लॉग हैं::
MODE: ||
MODE != string.Empty: False
MODE TRIM != string.Empty: False
MODE.IsNullOrEmpty: True
MODE.TRIM.IsNullOrEmpty: True
यहाँ उसकी लॉग हैं:
MODE: ||
MODE != string.Empty: True
MODE TRIM != string.Empty: False
MODE.IsNullOrEmpty: True
MODE.TRIM.IsNullOrEmpty: True
है के रूप में आप देख सकते हैं मैं लॉग इन करने के लिए उस पर कुछ परीक्षण जोड़ा एक अंतर: MODE != string.Empty
मेरे लिए झूठा है (समझ में आता है), उसके लिए सच है! मोड स्पष्ट रूप से शून्य नहीं है (अन्यथा .ToString()
विफल हो गया होगा) समस्या IsNullOrEmpty का उपयोग कर तय की गई है, लेकिन मैं यह पता लगाने की कोशिश कर रहा हूं कि यह कुछ उपयोगकर्ता की मशीनों पर क्यों काम नहीं करेगा, न कि दूसरों को। आम तौर पर मेरे परीक्षणों में से कुछ में हमें कोई समस्या नहीं थी, अन्य थे।
मुझे वास्तव में समझ में नहीं आता कि मैं इसके बारे में क्या सीख सकता हूं। उसका मोड शून्य और String.Empty
से अलग क्यों है, लेकिन IsNullOrEmpty
सच है? यह भी ध्यान रखें कि ट्रिम वास्तव में string.Empty
के साथ-साथ
धन्यवाद!
'IsNullOrEmpty' वास्तव में 0. – juharr
को' Length' की तुलना भी की कोशिश करो बाहर मुद्रण 'संदर्भ [" मोड "] द्वारा खाली हिस्सा है। GetType()। नाम' भी। – juharr
क्या आप 'संदर्भ ["मोड"] में मान की उत्पत्ति के बारे में अधिक जानकारी प्रदान कर सकते हैं? साथ ही, क्या आपने सुनिश्चित किया है कि .NET के संस्करण दोनों मशीनों पर समान हैं? –