यदि मैं एक सकारात्मक संख्या को एक सकारात्मक संख्या से घटाता हूं, तो कोड काम करता है।
उदाहरण के लिए, 4-1=3
। समस्या यह है कि जब मैं 3 - -2
जैसे नकारात्मक संख्या को घटाता हूं।
यह 5
के बराबर होना चाहिए।
जब मैं टेक्स्टबॉक्स txt_p7 (दूसरा टेक्स्टबॉक्स) में '-' दर्ज करता हूं, तो यह इस कोड में एक त्रुटि दिखाता है:
txt_result.Text = (Convert.ToInt32(txt_p1.Text) - Convert.ToInt32(txt_p7.Text)).ToString();
यहाँ कोड का उपयोग कर रहा हूँ:
private void txt_p1_TextChanged(object sender, EventArgs e)
{ if ((!string.IsNullOrEmpty(txt_p1.Text)) && (!string.IsNullOrEmpty(txt_p7.Text)))
txt_result.Text = (Convert.ToInt32(txt_p1.Text) - Convert.ToInt32(txt_p7.Text)).ToString();
}
private void txt_p7_TextChanged(object sender, EventArgs e)
{
if ((!string.IsNullOrEmpty(txt_p1.Text)) && (!string.IsNullOrEmpty(txt_p7.Text)))
txt_result.Text = (Convert.ToInt32(txt_p1.Text) - Convert.ToInt32(txt_p7.Text)).ToString();
}
2 जवाब
आपका तर्क txt_p7_TextChanged()
में है
इसलिए जब आपने "-" इनपुट करने की कोशिश की, इससे पहले कि आप किसी भी नंबर पर इनपुट करें, यह विधि कहा जाता है।
Convert.ToInt32(txt_p7.Text)
इस समय txt_p7.Text = "-"
के रूप में एक त्रुटि फेंक देंगे एक नंबर नहीं है।
txt_p7_TextChanged()
की शुरुआत में ब्रेक प्वाइंट लगाएं और आप देखेंगे कि क्या गलत है।
इसे इस्तेमाल करे
private void txt_p7_TextChanged(object sender, EventArgs e)
{
int number1, number2;
if (int.TryParse(txt_p1.Text, out number1) && int.TryParse(txt_p7.Text, out number2))
txt_result.Text = (number1 - number2).ToString();
}
त्रुटि संदेश के बिना, यह बताना मुश्किल है कि क्या हो रहा है, लेकिन मैं जो देख सकता हूं, वह संख्या पूरी होने से पहले गणना शुरू कर रहा है।
यदि आप किसी मान को txt_p1 में इनपुट करते हैं, और txt_p7 में एक नकारात्मक मान को इनपुट करने का प्रयास करते हैं, तो '-' दर्ज करते हुए एक गणना को ट्रिगर किया जाएगा यदि दोनों टेक्स्टबॉक्स के स्ट्रिंग के साथ सशर्त संतुष्ट होने पर। समस्या यह है कि आप बिना किसी त्रुटि जाँच के पूर्णांक में परिवर्तित हो रहे हैं, इसलिए यह '-' को पूर्णांक में परिवर्तित करने का प्रयास कर रहा है जो आपकी विफलता का कारण बन रहा है।
private void txt_p1_TextChanged(object sender, EventArgs e)
{
if ((!string.IsNullOrEmpty(txt_p1.Text)) && (!string.IsNullOrEmpty(txt_p7.Text)))
{
int val1, val2;
//Ensure both are valid integers
if (int.TryParse(txt_p1.Text, out val1) && int.TryParse(txt_p7.Text, out val2))
{
txt_result.Text = (val1 - val2).ToString();
}
}
}
आपको रूपांतरण से पहले इनपुट को मान्य करने की आवश्यकता है अन्यथा गैर-संख्यात्मक वर्ण दर्ज किए जा सकते हैं जो एक रन-टाइम विफलता का कारण होगा।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।