2009-08-11 9 views
61

インターフェイスのメソッド/プロパティ/などへの参照ではなく、すべての実装を簡単に見つける方法はありますか?ここではいくつかのサンプルコードです:インターフェイスのメソッドの実装をすばやくどのように見つけるか?

public class SomeClass : IBaseClass 
{ 
    public Int32 GetInt() 
    { 
    return 1; 
    } 
} 

public interface IBaseClass 
{ 
    public Int32 GetInt(); 
} 

public class SomeOtherClass 
{ 
    IBaseClass _someClass; 
    private TestMethod() 
    { 
    _someClass = new SomeClass(); 
    _someClass.GetInt(); 
    } 
} 

私はSomeOtherClass.TestMethodを見直しながら、すばやく())SomeClass.GetInt(に取得したいです。私が_someClass.GetInt()を右クリックして「Go To Definition」をクリックすると、それは私をインタフェースに連れて行きます。 'Find All References'をクリックすると、GetInt()メソッドを実装しているクラスだけでなく、すべての用途のリストが表示される可能性があります。

これを見つけるより速い方法がありますか?他の開発者からのヒント私たちはD.I.を使用しています。依存関係のほとんどは、深くネストされたコードをトレースすると、が永遠にになります。

+1

定義を含むすべての参照を表示するには、Shift + F12を使用します。 –

答えて

21

Alt-EndはReSharperでこれを行います。

+17

開発者1人当たり349ドル。それが私たちがVS2008プロに支払ったものです。 –

+10

あなたはReSharperの売上高を求めていませんでした。利益を上げているのは私たちのビジネスではありませんが、あなたがやっていることをどのようなお金で考えているのかを考えてから、ライセンス料を回収してください。数字が正しければ、$ 350の価値があります。私は仕事をしている間にReSharperの機能を学ぶには十分な速度を落としてから1ヶ月後に(そして、私はまだそれらの一部を習っています)生産性をコード作成者としてLEASTで30%引き上げました(これはおそらく高く、率直に言って、私は誇張したくありません)。 – lance

+4

私が同意すると、リシャーパー価格(C#版のみがさらに安い)を嫌う企業は、無駄な時間を費やして1000ドルの会社になって以来、ばかだ。私はまた、resharperのコストが1ヶ月で簡単に回収されるというランスの見解に同意します。 –

1

R#には、ポップアップメニューの[実装に移動]オプションがありますが、これは本当に便利です。これを行うための最善の方法のReSharperなし

+0

あなたは知っているVSの中で素晴らしいとは思いませんか? –

+0

あなたがすでに言及している参照を検索してください。あなたがR#を知らないなら、本当にあなたがそれをチェックすることをお勧めします。このような機能に加えて、有用なコーディングのヒントと、本当に強力なリファクタリング機能のセットがあります。 –

+0

R#はまったく異なるプログラミング言語ではないですか、それともR#IDEですか?私たちはASP.NET MVCアプリケーションを構築しています... –

9

は次のとおりです。

ファイルで検索します(Ctrl + Shift + Fを) 何を検索: "ワイルドカードを使用"

これを: オプションを探す "クラス* ISomeClass"すべての実装が見つかり、具体的な実装で関数を検索することができます。

+1

たちは通常、「I」のではなく、クラスでインタフェースを起動し、ISomeClassを見て変な感じ...しかし、それはこのプラグインはのCodeRushのためである私たちだけ –

4

あなたはこのプラグインと一緒に行く試みることができる:

http://blog.rthand.com/post/2010/01/18/Meet-e2809cGo-To-Implementatore2809d-DXCore-plugin-for-Visual-Studio.aspx

+0

だと、のCodeRushの無料版が中止されているようです)=ダウン専門用語で明らかにいませんよ。 – Constantin

+1

のCodeRush Xpressのは、vs2013をサポートしていませんhttp://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/ –

+0

のCodeRush Xpressの非常に生きているようだ – Ronnie

98

私がコーディングしながら、マウスを使用して好きではないので、私は通常

  • 方法
  • の上にカーソルを移動
  • タイプctrl + k clrl + tコール階層ウィンドウを開く
  • Implemに移動entsノード。選択された実装

に行く

  • 型戻る私の知る限り、これはReSharperのなくて、メソッドの実装を見つけるための最も簡単な方法です。

    (ところで:あなたが対応するインタフェース宣言にクラスメソッドの実装から移動するために、同じシステムを使用することができます。ちょうどルートを選択)

  • +0

    うわー、かなりクールな、ありがとう! –

    +0

    VS2010が必要です。 – Constantin

    +0

    はい、私はそう思います。 –

    1

    あなたのインターフェイスは、そのあなたの具体的なモデルと同じライブラリ内にある場合典型的にはナビゲートしたいと思います。具体的なオブジェクトに「エイリアスを使用する」を追加することができます。 「使用法」は何とかヘルパーであり、これが役立ちます。

    using System; 
    using PrimaryImplementation = YourNamespace.YourConcreteObject; 
    
    
    public interface IYourInterface{ 
    
    } 
    

    インターフェイスに接続すると、インターフェイスの主要な実装にすばやく(汚れた)方法があります。 F12-> F12!

    関連する問題