C# 或语句使程序崩溃,但AND语句在C中工作#
刚开始尝试用C#for windows窗体构建一个非常简单的套现程序,并找到了一个非常有用的答案,即在这里不使用按钮将两个文本框添加在一起 以此为基础,我找到了一个可行的解决方案,但它使用AND语句将变量添加到字符串中,该字符串要求所有输入都有一个条目,这对于我想要实现的目标非常实用,因此,我将其改为使用OR语句,因为我不需要填写每个文本框来获得答案 但是当我运行它的时候,它崩溃了,我很确定它很简单,但我对C#还不太熟悉,也不确定它为什么要这样做,如果社区能给我指出正确的方向,那就是ace 我的代码是C# 或语句使程序崩溃,但AND语句在C中工作#,c#,string,C#,String,刚开始尝试用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()在传递空字符串时引发异常。看看你的逻辑。您以前只传递非空字符串;现在,即使一个或另一个字符串为空,您仍然要进行算术运算。您需要编写一个方法,该方法接受两个字符串,检查每个字符串是否为空,并执行适当的转换和算术。@EdPlunkettConvert.ToDecimal(null)
实际上返回默认值(十进制)
。“我也没料到会有这种情况。”乔纳森·查斯谢谢你,我已经更正了评论。但这对操作没有帮助,因为文本框将有空字符串而不是空字符串,这将抛出(我刚刚选中!)