Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 或语句使程序崩溃,但AND语句在C中工作#_C#_String - Fatal编程技术网

C# 或语句使程序崩溃,但AND语句在C中工作#

C# 或语句使程序崩溃,但AND语句在C中工作#,c#,string,C#,String,刚开始尝试用C#for windows窗体构建一个非常简单的套现程序,并找到了一个非常有用的答案,即在这里不使用按钮将两个文本框添加在一起 以此为基础,我找到了一个可行的解决方案,但它使用AND语句将变量添加到字符串中,该字符串要求所有输入都有一个条目,这对于我想要实现的目标非常实用,因此,我将其改为使用OR语句,因为我不需要填写每个文本框来获得答案 但是当我运行它的时候,它崩溃了,我很确定它很简单,但我对C#还不太熟悉,也不确定它为什么要这样做,如果社区能给我指出正确的方向,那就是ace 我的

刚开始尝试用C#for windows窗体构建一个非常简单的套现程序,并找到了一个非常有用的答案,即在这里不使用按钮将两个文本框添加在一起

以此为基础,我找到了一个可行的解决方案,但它使用AND语句将变量添加到字符串中,该字符串要求所有输入都有一个条目,这对于我想要实现的目标非常实用,因此,我将其改为使用OR语句,因为我不需要填写每个文本框来获得答案

但是当我运行它的时候,它崩溃了,我很确定它很简单,但我对C#还不太熟悉,也不确定它为什么要这样做,如果社区能给我指出正确的方向,那就是ace

我的代码是

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

    namespace Business_Done
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void till1Receipts_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till1Accounts_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till1WorldPay_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till1Amex_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till150Pound_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till120Pound_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till110Pound_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till15pound_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till11Pound_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till150p_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till120P_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till110P_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till15P_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till1Copper_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till1Float_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Receipts.Text) || !string.IsNullOrEmpty(till1Accounts.Text) || !string.IsNullOrEmpty(till1WorldPay.Text) || !string.IsNullOrEmpty(till1Amex.Text) || !string.IsNullOrEmpty(till150Pound.Text) || !string.IsNullOrEmpty(till120Pound.Text) || !string.IsNullOrEmpty(till110Pound.Text) || !string.IsNullOrEmpty(till15pound.Text) || !string.IsNullOrEmpty(till11Pound.Text) || !string.IsNullOrEmpty(till150p.Text) || !string.IsNullOrEmpty(till120P.Text) || !string.IsNullOrEmpty(till110P.Text) || !string.IsNullOrEmpty(till15P.Text) || !string.IsNullOrEmpty(till1Copper.Text) || !string.IsNullOrEmpty(till1Float.Text))
                    till1Revenue.Text = (Convert.ToDecimal(till1Receipts.Text) + Convert.ToDecimal(till1Accounts.Text) + Convert.ToDecimal(till1WorldPay.Text) + Convert.ToDecimal(till1Amex.Text) + Convert.ToDecimal(till150Pound.Text) + Convert.ToDecimal(till120Pound.Text) + Convert.ToDecimal(till110Pound.Text) + Convert.ToDecimal(till15pound.Text) + Convert.ToDecimal(till11Pound.Text) + Convert.ToDecimal(till150p.Text) + Convert.ToDecimal(till120P.Text) + Convert.ToDecimal(till110P.Text) + Convert.ToDecimal(till15P.Text) + Convert.ToDecimal(till1Copper.Text) - Convert.ToDecimal(till1Float.Text)).ToString();

            }

            private void till1XRead_TextChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(till1Revenue.Text) || !string.IsNullOrEmpty(till1XRead.Text))
                    till1Var.Text = (Convert.ToDecimal(till1Revenue.Text) - Convert.ToDecimal(till1XRead.Text)).ToString();
            }
}
}
我只包括了第一块,因为其他4块都是一样的,不想重复太多


提前感谢。

首先:如果您只在所有输入都为非空/非空时进行计算,就像原始的
&&
逻辑一样,那么您可以保证所有这些字符串都可以被解析为小数

但是,与现在的
|
一样,如果其中一个字符串是空字符串,它仍然会添加所有字符串,包括空字符串。当您尝试解析空的时,将抛出异常。你需要做的是检查每一个,只添加那些不是空的。按照您现在使用的方法编写代码是一件非常复杂的事情,但我将向您展示一种使其非常简单和清晰的方法

第二:除一个事件处理程序外,其他所有事件处理程序都是相同的。可以将同一处理程序分配给多个事件。只需编写一次,并将其分配给所有TextChanged事件。这里还有一种更简洁、更简单的编写方法:

public static decimal AddDecimalStrings(params string[] decimals)
{
    decimal result = 0;

    foreach (var str in decimals)
    {
        result += SafeParseDecimal(str);
    }

    return result;
}

public static decimal SafeParseDecimal(string str)
{
    decimal result = 0;
    Decimal.TryParse(str, out result);
    return result;
}

private void decimalInput_TextChanged(object sender, EventArgs e)
{
    var result = AddDecimalStrings(
                    till1Receipts.Text,
                    till1Accounts.Text,
                    till1WorldPay.Text,
                    till1Amex.Text,
                    till150Pound.Text,
                    till120Pound.Text,
                    till110Pound.Text,
                    till15pound.Text,
                    till11Pound.Text,
                    till150p.Text,
                    till120P.Text,
                    till110P.Text,
                    till15P.Text,
                    till1Copper.Text,
                    till1Float.Text);

    till1Revenue.Text = result.ToString();
}

private void till1XRead_TextChanged(object sender, EventArgs e)
{
    var result = SafeParseDecimal(till1Revenue.Text) - SafeParseDecimal(till1XRead.Text);
    till1Var.Text = result.ToString();
}
如果您添加另一个文本框,这将使更新代码变得非常容易

逻辑AND运算符(
&&&
)的工作原理如下: 运行
condition1&&condition2&&condition3&&…
时,程序将尝试按条件的顺序计算每个条件。如果其中任何语句的计算结果为
false
,它将停止,并且不会尝试计算其余语句,因为这意味着整个
If
语句为
false
。否则,它们都计算为
true
,这意味着如果
语句为
true
,则整个

但是,逻辑OR运算符(
|
)的工作原理如下: 当运行
condition1 | | | condition2 | | condition3 | |…
时,程序将尝试按顺序计算每个条件。如果其中任何语句的计算结果为
true
,它将停止,并且不会尝试计算其余语句,因为这意味着整个
If
语句为
true
。否则,它们的计算结果都是
false
,这意味着如果
语句是
false
,则整个


记住这些定义,注意哪种情况会使程序崩溃。在调试模式下运行代码,我想您将在
文本框
变量之一上得到一个NullReferenceException。

您得到的错误消息是什么?哪一行引发异常?1<代码>a&&b
不是一个语句,它是一个表达式。如果我说的是修理你的猫,而我指的是你的车,那会引起混乱。语言很重要。2.Convert.ToDecimal()在传递空字符串时引发异常。看看你的逻辑。您以前只传递非空字符串;现在,即使一个或另一个字符串为空,您仍然要进行算术运算。您需要编写一个方法,该方法接受两个字符串,检查每个字符串是否为空,并执行适当的转换和算术。@EdPlunkett
Convert.ToDecimal(null)
实际上返回
默认值(十进制)
。“我也没料到会有这种情况。”乔纳森·查斯谢谢你,我已经更正了评论。但这对操作没有帮助,因为文本框将有空字符串而不是空字符串,这将抛出(我刚刚选中!)