2015-12-05 5 views
7

私はVS 2015を使用します。新しいクラスを作成し、ショートカット「Ctrl +」を使用してインターフェイスを実装しようとします。たとえば、 StarShipクラス:IStarShip と入力し、「Ctrl +」を使用します。実装インタフェースを選択します。プロパティとメソッドをアルファベット順に実装しています!インターフェイスにある順序で実装する簡単な方法はありますか、それとも手動で行うべきですか?私はまだresharperを持っていないので、それはオプションではありません。アルファベット順ではないインターフェイスプロパティを実装する方法

答えて

1

VS 'インプリメントインターフェイス'機能は、明らかにリフレクションを使用してコードを生成します。リフレクションAPIには、さまざまな呼び出しによって返されるメンバーの順序を保証するものはありません。我々は、反射順序やインターフェイスを実装するために使用されるVSコードジェネレータを制御することはできないため、動作の仕方を変更することはできません。

唯一のオプションは、実装インターフェイスの機能を置き換えるresharperのようなVS拡張機能を使用することです。

+0

しかし、なぜVS2013では動作が異なりますか? –

+0

インタフェースのメンバ( 'typeof(IList).GetMembers()'など)を列挙すると、結果の順序はかなり整然としています。私は誰かがあなたが以前に持っていたランダムに見える注文の代わりにアルファベット順になるように物事を改善すると思ったと思う。それは以前に注文していたコードに問題があり、それをアルファベット順に捨てました。私は開発者へのラインを持っていないので、私は確かに言うことができません。 – Corey

+5

VS2013を使用してインターフェイス(コード生成)を実装すると、インターフェイスに定義されている順序と同じ順序でメソッドが配置されます。 OPの質問はVS2015で同じことが起こらない理由と思われます。可能であればVS2013と同じようにすることができます。 –

関連する問題