• 0

[C#]Need help converting empty string to double.


Question

Hi all , i'm quite a beginner in C# language , i wanted to write a program that uses OOP and requires the user to input an amount of cash and another amount to take it from cash , if the cash is lesser than the amount , it will display "Not enough cash." message . very simple ... here's my code :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();            
            guy1 = new Guy();
            double x;
            if (double.TryParse(textBox2.Text, out x))
            {
                guy1.guycash = double.Parse(textBox2.Text);
            }
            guy1.guyname = textBox1.Text;            
        }

        Guy guy1 ;


        private void button1_Click(object sender, EventArgs e)
        {                     
             label5.Text = guy1.TakeCash(double.Parse(textBox3.Text)).ToString();
        }      

    }
}

And here's the Guy class code :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    class Guy
    {
        private string name;
        private double cash;

        public string guyname
        {
            get { return name; }
            set { name = value; }
        }

        public double guycash
        {
            get { return cash ; }
            set { cash = value; }
        }


        public double TakeCash(double amount)
        {
            if (cash > amount)
            {
                cash -= amount;
                return cash;
            }
            else
            {
                MessageBox.Show("Notgh Cash.");
                return 0;
            }
        }

    }
}

ok , now bear with me please , using this in Public form1()

if (double.TryParse(textBox2.Text, out x))
            {
                guy1.guycash = double.Parse(textBox2.Text);
            }

requires that a numeric value must exist in textbox2 when the form loads up , but i want to leave it empty so that the user can enter a number in it !

if i left it empty the double.TryParse will return false and the whole program will broke since there will be no control holding guy1.guycash value ..

any help is appreciated , thanks in advance :)

2 answers to this question

Recommended Posts

  • 0

You will need to handle the TextChanged event of the TextBox, or add a new button that the user clicks after entering the cash, and put the code that populates guy1's cash in there. Where the code is now it will only be run when the application is launched and the user will never have an opportunity to set the cash property. You also don't need to call parse again after tryparsing, x contains the value you want if the parse succeeds so you can just assign it to guycash.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.