के लिए अजीब अपवाद फेंकता है जब मैं सी # की बात करता हूं तो मैं एक पूर्ण शुरुआतकर्ता हूं। उदाहरणों के माध्यम से सीखने की कोशिश कर रहा है। तो मैंने खुद को एक अच्छा छोटा कैलकुलेटर ट्यूटोरियल पाया है। आखिरी पल तक सब ठीक हो जाता है, कोड काम कर रहा है, लेकिन यह 33
जैसे बहु-अंक इनपुट नहीं लेता है। अंकगणितीय परिचालन चालू/बंद करने के लिए वहां एक बूल स्टेटमेंट है और ट्यूटोरियल प्रशिक्षक ने पाया है कि हमें संख्या इनपुट/बटन प्रेस (button_Click
में) से पहले bool = false
डालना चाहिए।सी # बूल स्टेटमेंट प्रतीत होता है कि असंगत डबल.परसे (स्ट्रिंग)
उनकी कोड इस तरह दिखता है:
public partial class MainWindow : Window
{
double value = 0;
string operation = "";
bool operation_pressed = false;
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
if ((tb.Text == "0") || (operation_pressed == true))
tb.Clear();
operation_pressed = false;
Button b = (Button)sender;
tb.Text += "\n" + b.Content.ToString();
}
private void operator_Click(object sender, RoutedEventArgs e)
{
Button b = (Button)sender;
operation = b.Content.ToString();
value = double.Parse(tb.Text);
operation_pressed = true;
equation.Content = value + " " + operation;
}
private void result_Click(object sender, RoutedEventArgs e)
{
equation.Content = "";
switch(operation)
{
case "+":
tb.Text = "\n" + (value + double.Parse(tb.Text)).ToString();
break;
case "-":
tb.Text = "\n" + (value - double.Parse(tb.Text)).ToString();
break;
case "*":
tb.Text = "\n" + (value * double.Parse(tb.Text)).ToString();
break;
case "/":
tb.Text = "\n" + (value/double.Parse(tb.Text)).ToString();
break;
default:
break;
}
}
private void CE_Click(object sender, RoutedEventArgs e)
{
tb.Text = "\n 0";
}
private void C_Click(object sender, RoutedEventArgs e)
{
tb.Clear();
equation.Content = "";
value = 0;
}
}
यह अच्छी तरह से संकलित करता है।
When converting string to DateTime, parse the string to take the date before putting each variable into the
DateTime
object.
मैं अभी इतना भ्रमित कर रहा हूँ: लेकिन जब मैं इनपुट करने के लिए एक multidigit संख्या कोशिश करते हैं और एक गणितीय ऑपरेटर के साथ पालन करें, यह संभव है कि कहा गया है value = double.Parse(tb.Text);
के लिए एक अपवाद फेंकता है। कोई DateTime
भी शामिल नहीं है! और मैं 100% सकारात्मक हूं, सब कुछ ट्यूटोरियल में है। क्या चल रहा है? :/
किसी भी मदद की सराहना की जाएगी!
संपादित
वास्तविक त्रुटि का स्क्रीनशॉट:
तो आप 'tb.text' में multidigit संख्या और गणित ऑपरेटर इनपुट करते हैं ?? – Adam
मैंने पहले कभी ऐसा अपवाद संदेश नहीं देखा है। क्या आप वाकई वास्तविक त्रुटि प्राप्त कर रहे हैं? और यह वास्तव में उस रेखा से आ रहा है? मैं * अत्यधिक संदेह * 'डबल। पर्स()' एक अपवाद के रूप में फेंक रहा है। – David
इस डबल कुछ कोशिश करें = डबल। पर्स (tb.Text); मूल्य = SomeValue; क्या आपको अभी भी पार्स में त्रुटि मिलती है? क्या मूल्य संपत्ति किसी संपादक से जुड़ी है? –