有没有办法使用三元运算符 - 或类似的方法 - 来选择要分配的变量?

Jim*_*ies 8 .net c# ternary-operator

是否可以根据条件区分我分配的变量?我遇到的问题是想要这样做:

(bEquipAsSecondary ? currentWeaponOffhand : currentWeaponMainhand) = weaponToSwitchTo;
Run Code Online (Sandbox Code Playgroud)

代替

if (bEquipAsSecondary)
{
    currentWeaponOffhand = weaponToSwitchTo;
}
else
{
    currentWeaponMainhand = weaponToSwitchTo;
}
Run Code Online (Sandbox Code Playgroud)

这导致以下错误

错误CS0131赋值的左侧必须是变量,属性或索引器

所以我想知道是否有办法减少使用的空间并且 - 在我看来 - 让它看起来有点整洁?

Anu*_*wan 7

不确定这是否真的有效,但如果你真的想坚持三元运营商,这是我的2美分......

(bEquipAsSecondary ? ref currentWeaponOffhand : ref currentWeaponMainhand) = weaponToSwitchTo;
Run Code Online (Sandbox Code Playgroud)