0

Visual Studioのショートカット/スニペットを使用する場合、後で緑色のボックスに入力するのではなく、事前に/自動的にコレクションを指定することはできますか?

この場合、キーストロークの数をできるだけ少なくして、次のようなものを考え出そうとしています。

foreach (ListItem item in ListBox1.Items)
{
    //
}

たとえば、ショートカット「CTRL + K、CTRL + X foreach」は、反復処理するコレクションを推測し、通常は間違っています。私はしばしば次のようになります:

foreach (object var in collection_to_loop)
{
        //
}

コレクション識別子を入力したり、「Surround with」を使用したりすると、強調表示されたアイテムがループブロックに次のように配置されるため、うまく機能しません。

foreach (ListItem item in ListBox1.Items)
{
    ListBox1.Items 
}

これを行う方法はありますか?私はVisualStudio2005を使用していますが、これは2008年に、またはプラグインを使用して実行できると言われるのと同じくらい嬉しいです。


編集:わかりました、私が何を求めているのかを明確に説明しなかっただけでなく、Resharper機能を見て、それが組み込みのVS機能だと思っていたようです。ループに入れるコレクションの種類を推測し、約1/4の時間で正しく取得しようとしているのは、Resharperの「ライブテンプレート」であることがわかりました。

私が求めていたのは、Resharperがその推測をどのように行うか、そしてヒントを与えるために何ができるか(目的のコレクションの識別子を強調表示するなど)についての少しの洞察でした。JetbrainsのWebサイトを見て、何か見つけたらここで更新します。

4

2 に答える 2

3

私は本当にこれを言う方法をよく知りませんが、あなたは多分あまりにも多くの自動化を求めていると思いますか?つまり、コードスニペットは、繰り返しの入力を減らすので便利です。しかし今、あなたはそれがとにかくあなたがタイプしようとしていたものを実際に推測することを望みます。ループの本体も推測する必要がありますか?

はるかに強力なコード生成機能を備えたDeveloperExpressのCodeRushを調べたいと思うかもしれませんが、あなたが提案していることを実行できるかどうかはわかりません。

于 2009-05-24T17:02:05.373 に答える
1

通常のインテリセンスを使用して「ListBox1.Items」と入力し、Alt-Enter キーを押して「foreach でコレクションを列挙する」を選択します (正確なテキストではありません)。

ただし、ListBox.Items (Windows.Forms から) について正確に言えば、厳密に型指定されていない ObjectCollection 型です。そのため、要素の正しい型を推測することはほとんど不可能です。WPF の場合、Items プロパティは厳密に型指定されていないコレクション ItemCollection も返します。厳密に型指定されたコレクションまたはジェネリック コレクションがある場合、ReSharper は列挙項目の型を正しく推測できます。

于 2009-05-26T19:38:27.193 に答える