所以..我在WPF中得到了这个转换器,它应该将Orientation作为参数。如果没有,转换器应该只将方向指定为水平。
这是我的代码:
Orientation orientation = Orientation.Horizontal;
if (parameter is Orientation)
orientation = (Orientation) parameter;
但是,resharper在“is”下摆动,并暗示我“合并演员与类型检查”。使用重构,它看起来像这样:
Orientation orientation = Orientation.Horizontal;
if (parameter is Orientation orientation1)
orientation = orientation1;
使用虚拟变量。
我认为我自己创造的是最好的和最干净的,但是resharper不同意。你会怎么写这段代码?
我知道resparper可以配置,但我大多喜欢这种建议。它只是在处理结构时似乎是疯狂的。
答案 0 :(得分:0)
在我看来,R#通过使用最新的c#功能使代码变得复杂。你的变体很好而且清晰,我没有看到需要改变它(它只有3行!)
但是考虑使用as
运算符回退到默认值(需要可空类型Orientation?
)
object parameter1 = Orientation.Vertical;
Orientation o1 = (parameter1 as Orientation?) ?? Orientation.Horizontal;
object parameter2 = "Vertical";
Orientation o2 = (parameter2 as Orientation?) ?? Orientation.Horizontal;
返回
Orientation.Vertical
Orientation.Horizontal