相关疑难解决方法(0)

在代码中有效地表达2x2逻辑网格

在事件处理程序中,我正在响应值的更改.我可以访问旧值和新值,并希望根据更改的内容执行某些操作.

每个不同的结果将执行动作/函数X,Y或Z的某种组合.Z接受-1和1之间的参数.执行这些的顺序并不重要.

查看以下逻辑网格.旧值是最左边的标签列,新值是标签的第一行:

          New:
          0          !=0
          --------   -------
Old:  0 | nothing    Y, Z(1)
    !=0 | X, Z(-1)   X, Y    -- Z(0) is okay but not required for this quadrant
Run Code Online (Sandbox Code Playgroud)

什么是代表这个的好方法?

我在C#工作,但会接受任何语言的答案,因为它不是一个真正的语言问题 - 我可以翻译任何东西.

例:

if (oldvalue == 0 && newvalue == 0) return;
if (oldvalue != 0) X();
if (newvalue != 0) Y();
Z(oldvalue != 0 ? -1 : 0 + newvalue != 0 ? 1 : 0);
Run Code Online (Sandbox Code Playgroud)

我认为这看起来很不错,但还有其他方法可以做到.

int which = (oldvalue == 0 ? 0 : 1) …
Run Code Online (Sandbox Code Playgroud)

c# language-agnostic grid logic

5
推荐指数
1
解决办法
616
查看次数

标签 统计

c# ×1

grid ×1

language-agnostic ×1

logic ×1