c# - 检查是否至少有一个对象不为零

标签 c#

这个函数需要检查 a=b=c=0 或者只有一个是 <>0

是否有进行此检查的最佳方法?

void (int p, int a, int s) {
    if ((p != 0 && a != 0) 
        || (p != 0 && s != 0)
        || (a != 0 && s != 0)
        || (a != 0 && s != 0 && p != 0)) throw new Exception("Error please set A or P or S");

}

最佳答案

一个简单的解决方案,不使用 Linq 或任何随之而来的开销:

public void Check(int p, int a, int s)
{
    var count = 0;
    if (p != 0) count++;
    if (a != 0) count++;
    if (s != 0) count++;
    if (count >= 2)
        Console.WriteLine("Please set only A or P or S or none");
    else
        Console.WriteLine("OK");
}

工作 fiddle :https://dotnetfiddle.net/ViMmRV

关于c# - 检查是否至少有一个对象不为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59882551/

相关文章:

c# - 更改布局文件 mvc4 中的类

C# Foreach 优化与反射

c# - 对象层次结构中的层次更改通知

c# - 为什么在这种情况下没有死锁?

c# - 如何比较 C# 中的多维数组?

c# - CallerInfo,获取传递给方法的变量名称(如 nameof)

c# - COM+ 远程处理错误代码 8000401a 因为身份选项卡下此用户的密码正在重置

c# - NUnit属性

c# - Azure Function blob 输入与服务总线触发器绑定(bind)

c# - WPF Popup 作为用 xaml 编写的单独控件