为了账号安全,请及时绑定邮箱和手机立即绑定

OR 语句使程序崩溃,但 AND 语句在 C# 中有效

OR 语句使程序崩溃,但 AND 语句在 C# 中有效

C#
aluckdog 2021-07-09 13:05:15
刚刚开始尝试在 C# 中为 windows 窗体构建一个非常简单的兑现程序,并找到了一个非常有用的答案,将 2 个文本框添加在一起而没有按钮在这里添加来自两个文本框的值并在第三个文本框中显示总和以此为基础,我找到了一个有效的解决方案,但它使用 AND 语句将变量添加到一个字符串中,该字符串要求所有输入都有一个条目,这对于我想要实现的目标非常实用,因此,我更改了它使用 OR 语句,因为我不需要填充每个文本框来获得答案。但是当我运行它时,它崩溃了,我很确定它很简单,但我是 C# 的新手,我不确定为什么要这样做,如果社区能指出我正确的方向,那将是王牌!我的代码是;        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();            }ate void till1Copper_TextChanged(object sender, EventArgs e)            {            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 块是一样的,不想重复太多!
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

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

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

考虑到这些定义,请注意哪种情况会导致程序崩溃。在调试模式下运行代码,我猜你会在其中一个TextBox变量上得到 NullReferenceException 。


查看完整回答
反对 回复 2021-07-18
  • 2 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信