为了解决这些要求,我认为您想要的是:
如果目标是Limited(),那么如果我们的容量大于容量,或者目标中没有足够的空间来添加我们的数量,则会失败
因此,这将使条件:
if (link.target.Limited()
&& (link.target.capacity < link.amount
|| link.target.amount + link.amount > link.target.capacity))
为了更加对称,通过交换第三个表达式的LHS和RHS,可以将其写成:
if (link.target.Limited()
&& (link.target.capacity < link.amount
|| link.target.capacity < link.target.amount + link.amount))
现在,我们可以进一步看到
link.target.capacity < link.amount
当且仅当
link.target.capacity < link.target.amount + link.amount
也是如此,因此我们可以简化为:
if (link.target.Limited()
&& link.target.capacity < link.target.amount + link.amount)