2017-08-10 5 views
4

私は、Visual Studio 2017のすべてのプロパティにメソッドを置き換えることを提案する簡単なアクションがあることに気付きました。VS 2017はプロパティをメソッドに置き換えることを提案するのはなぜですか?

enter image description here

そのプロパティがフィールドの値を設定および取得するための推奨方法ではありませんことを意味しており、Microsoftは将来的には廃止する予定です!

または、その目的のためのプロパティオーバーメソッドを使用して得られる利益はありますか?

+0

プロパティ自体は実際にはメソッドの背後にあり、中間言語はメソッドを理解するだけで、プロパティの外観については何も知らないので構文が簡単です –

+1

_suggestion_またはただのリファクタリングですか? – Lukazoid

+0

@EhsanSajjad - これは単なる実装の詳細です。意味的にはどちらも異なっている。プロパティはデータを表し、メソッドはアクションを表します。非常に粗悪な例は、TaxCalculaterを表すクラスです。プロパティはPrincipalで、ActionはCalculateです。常にGetPrincipalAmountまたはSetPrincipalAmountを持つことができますが、それは意味論的に意味をなさない。 「計算」は過負荷またはより多くのパラメータを有することができる。 'Calculate(bool IsCompoundInterest)'メソッドを作成する方が合理的です。 –

答えて

10

これは、Visual Studioからの提案ではない、それはQuick Actionです:

クイックアクションを使用すると、簡単に、リファクタリングを生成、またはそれ以外の場合は、単一のアクションでコードを変更してみましょう。

Visual Studioがあなたのリファクタリングの一部として、メソッドのペアとプライベート変数にプロパティを変換するオプションを与え、あなたはさまざまな理由でそうしたいはずです。

たとえば、ゲッターに余分なパラメーターを渡す必要があるか、セッターに他のタイプのオーバーロードがあることがわかります。このような状況では、プロパティの代わりにメソッドが必要になるため、Visual Studioではいくつかの簡単なクリックで操作できます。

クラス内のOfferPeriodプロパティなどの動作を持たないストアドプロパティの場合、メソッドのペアへの変換は、自動プロパティよりも利点がありません。

関連する問題