4

私はスティーブン・A・ボーレンの素晴らしいNHibernateの夏シリーズを見ていて、彼がCodeRushと対話するのを見てきました。私は最近ReSharperをインストールしました(私はReSharperの初心者です)。そして、StephenがCodeRushで(正直に)示しているReSharperの生産性に相当するものをいくつか見つけようとしています。

例として、彼は次のようなコードブロックを強調表示する方法を示します。

ISession session = GetSession();
session.xxx

そしてそれを

using (ISession session = GetSession())
{
   session.xxx
}

彼は、usingステートメントで囲みたいブロックを強調表示してから、CodeRushテンプレートを呼び出すことによってこれを行います。ReSharperで同等のことを行う方法を理解できませんでした。ReSharperサラウンドコマンド(Codeコマンド内)を見つけましたが、 usingステートメントを選択すると、強調表示されたコードブロックがサラウンドされますが、using句内に最初の行を配置するほど賢くはありません。つまり、次のようになります。

using () 
{
  ISession session = GetSession();
  session.xxx
}            

これには、最初の行をusing句に移動する必要があります。私はもっ​​と簡単な方法を逃していますか?

4

5 に答える 5

13

Resharper はこの機能を提供します。クラスが IDisposable を実装している場合は、Alt-Enter を押します。

(削除された画像デッドリンク「前」)
(削除された画像デッドリンク「後」)

また、変数名にカーソルを合わせる必要があります。このように: Sshot1 Sshot2 SShot3

于 2008-11-28T21:29:31.450 に答える
1

私はそのエピソードを見ていて、同じ質問かどうか疑問に思っていました。ここでのリードに基づいて、私はこのコードを持っていれば次のことを発見しました:

1        IList<Supplier> returnValue;
2        ISession session = SessionProvider.GetSession();
3        returnValue = session.CreateQuery("select from Supplier s").List<Supplier>();
4        return returnValue;

2行目のセッション変数にカーソルを置いてからAlt-Enterを実行すると、次のようになります。

1        IList<Supplier> returnValue;
2        using (ISession session = SessionProvider.GetSession())
3        {
4            returnValue = session.CreateQuery("select from Supplier s").List<Supplier>();
5        }
6        return returnValue;

変数名にカーソルがなかったため、何度か取得できましたが、機能しました。

ちなみに、何が起こっているのかを視覚的に示すことができるという理由だけで、CodeRushを使用しているデモを見るのが本当に好きです。私が発表していなかったら、それが邪魔になるのではないかと思います。

そして、あなたはResharper初心者ではありません:あなたはResharperPadawanです:)

沼地

于 2009-01-09T02:03:03.793 に答える
1

または、 using が既に入力されていて、コードの量を中括弧で囲みたい場合は、CTRL- E+Uを実行してから . を実行できます7

選択範囲を中括弧で囲みます。

于 2008-11-28T21:35:27.570 に答える
0

Visual Studio 2013 ではCTRL+ E+U
これにより次のダイアログが表示されます

ここに画像の説明を入力

そして。A_using

これで時間が節約できることを願っています。

于 2015-06-11T07:06:52.643 に答える
0

ReSharper のセットアップに何か問題があるのだろうか。カーソルが

Class1 c = new Class1();

以下のコードサンプルの行では、ReSharper はUse 'var'のみを提案しています。スプリット宣言と代入のどちらも提供しない場合は、コンストラクトを使用することもできませんか??

(Mindaugas -- DirectoryInfo に関するあなたのコメントはもちろん正しいです。私の悪い点です。うまくいけば、この例は私が見ていることをより明確に示しています)。

using System;

namespace DataAccessLayerTest {
    public class Class1 : IDisposable {
        public void Moo()
        {
            Console.Out.WriteLine("Moo");
        }
        public void Dispose()
        {
        }
    }

    public class Class2 {
        public void m()
        {
            Class1 c = new Class1();
            c.Moo();
        }
    }
}
于 2008-11-29T18:04:45.823 に答える