C# 如何在代码中执行所有函数?

C# 如何在代码中执行所有函数?,c#,C#,我在下面编写了代码,以检查C中表单中组件输入的数据 这段代码调用一些函数,每个函数返回一个布尔值。如果检查正常,则函数返回false,否则返回true 如果我的用户没有正确完成任何输入,则第一个代码检查函数返回true,并跳过其他函数调用 如何避免在一个函数调用返回true时跳过其他函数调用 命名约定: 以“txt”开头的变量是文本框 带有“mtxt”的星型变量被屏蔽 带有“rtxt”的星型变量是RichTextBox 代码: 你遇到了表达的短路;如果OR | |的第一部分为真,则无需对第二部分

我在下面编写了代码,以检查C中表单中组件输入的数据

这段代码调用一些函数,每个函数返回一个布尔值。如果检查正常,则函数返回false,否则返回true

如果我的用户没有正确完成任何输入,则第一个代码检查函数返回true,并跳过其他函数调用

如何避免在一个函数调用返回true时跳过其他函数调用

命名约定:

以“txt”开头的变量是文本框 带有“mtxt”的星型变量被屏蔽 带有“rtxt”的星型变量是RichTextBox 代码:


你遇到了表达的短路;如果OR | |的第一部分为真,则无需对第二部分进行评估。对于和&&,也有类似的规则,如果第一部分为false,则不计算第二部分。这是经过设计的,是该语言的一个非常有用的特性

为确保所有检查都得到评估,对代码进行的最简单更改是交换测试顺序,将检查放在| |运算符的左侧

allIsOK = checker.txtChecker(txtcode) ;
allIsOK = checker.txtChecker(txtdavar) || allIsOK; 
allIsOK = checker.txtChecker(txtKomakHazine) || allIsOK;
// etc etc


为什么您希望它执行后面的命令?如果我理解正确的话,你可以把| |换成|,但为什么?你能解释一下你真正想做的是什么吗。。?在获得-7或更多的反对票后,您似乎再次打开/转发了相同的问题。。请澄清你想表达的意思do@Random832这是一个很好的答案:至于原因,我假设这是因为txtChecker可能产生的副作用,例如输入无效时写入日志。执行函数时,如果inputComponent的值不正确,请将其背景色设置为红色。我想把所有不正确的输入都输入到red。你的方法txtChecker应该重新命名。现在它并没有指明它的用途。我建议将其命名为isValid或isInvalid,具体取决于它所使用的名称。现在我甚至不知道它是什么,这是问题的一部分,谢谢你的完整答案。在评论中,我发现如果使用二进制或|所有这些都将执行。StackOverflow和其他堆栈交换站点通常会接受您认为最有用的答案,查找绿色勾号,并对您认为有用的任何/每个答案进行投票。如果变量未被称为allIsOK,则为+1,因为您的建议以及OP的代码计算是对我来说,任何通过的检查都没有读到所有内容。@AlexeiLevenkov事实上,他的回报也是颠倒的,所以任何检查都是失败的。
allIsOK = checker.txtChecker(txtcode) ;
allIsOK = checker.txtChecker(txtdavar) || allIsOK; 
allIsOK = checker.txtChecker(txtKomakHazine) || allIsOK;
// etc etc
allIsOK = allIsOK && checker.txtChecker(txtdavar); //not||