ComboBoxEdit encoderCombo =
{
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
};
Run Code Online (Sandbox Code Playgroud)
为什么不直接内联整个事情并摆脱匿名方法?
ComboBoxEdit encoderCombo = slot == 1 ? cmbEncoder1 :
slot == 2 ? cmbEncoder2 :
slot == 3 ? cmbEncoder3 :
cmbEncoder4;
Run Code Online (Sandbox Code Playgroud)
如果你真的必须使用匿名方法,你可以做类似的事情:
Func<ComboBoxEdit> encoderCombo = () =>
slot == 1 ? cmbEncoder1 :
slot == 2 ? cmbEncoder2 :
slot == 3 ? cmbEncoder3 :
cmbEncoder4;
Run Code Online (Sandbox Code Playgroud)
这将捕获slot闭包中的值(当事情变得更复杂时,可能会导致不可预测的行为).
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |