2017-10-25 6 views
1

私はWPFでオリエンテーションをパラメータとして取得するはずです。そうでない場合、コンバータは水平方向に方向を割り当てるだけです。素敵なコードにマッチさせるパターン

これは私のコードです:

Orientation orientation = Orientation.Horizontal; 
if (parameter is Orientation) 
    orientation = (Orientation) parameter; 

しかし、ReSharperのは、「ある」と私は「型チェックとキャストをマージ」ことを示唆しているの下でウィグルを置きます。リファクタリングを使用すると、次のようになります。

Orientation orientation = Orientation.Horizontal; 
if (parameter is Orientation orientation1) 
    orientation = orientation1; 

ダミー変数を使用します。

私自身の創造は最も素敵で清潔だと思いますが、resharperは同意しません。どのようにこのコードを書いていますか?

私はresparperを設定することができますが、主に私はこのタイプの提案が好きです。構造体を扱うときには、それは嫌な人になるようです。

+0

私はこれが意見に基づいていると思います。私はマージが大好きです – Peter

+0

それはです:-)ほとんどのものは、ベストプラクティスになるときです。後であなたのコードを読むと思う人にも依存します。 – iakob

答えて

0

私の意見では、R#は最新のC#機能を使用してコードを複雑にしています。あなたのバリアントは罰金と明確である、私はそれを変更する必要が表示されない(それはわずか3行である!)

しかし

object parameter1 = Orientation.Vertical; 

Orientation o1 = (parameter1 as Orientation?) ?? Orientation.Horizontal; 

object parameter2 = "Vertical"; 

Orientation o2 = (parameter2 as Orientation?) ?? Orientation.Horizontal; 
(NULL可能タイプ Orientation?が必要です)デフォルト値にフォールバックして as演算子を使用することを検討してください

返信

Orientation.Vertical 
Orientation.Horizontal 
+0

美しい、ありがとう!短い一行のライナーでもあります:-) – iakob

関連する問題