4 Stimmen

Wie umgibt man einen Codeblock mit einer using-Anweisung in ReSharper?

Ich schaue mir gerade Stephen A. Bohlens ausgezeichneten Sommer von NHibernate Serie, und ich habe beobachtet, wie er mit CodeRush interagiert. Ich habe vor kurzem ReSharper installiert (ich bin ein ReSharper Neuling), und ich versuche, einige der ReSharper Produktivität Äquivalente, die Stephen demonstriert (tangential) mit CodeRush zu finden.

Als Beispiel demonstriert er das Hervorheben eines Codeblocks, der wie folgt aussieht:

ISession session = GetSession();
session.xxx

und verwandelt sie dann in

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

Dazu markiert er den Block, den er Surround mit der using-Anweisung und ruft dann eine CodeRush-Vorlage auf. Ich habe nicht in der Lage gewesen, herauszufinden, wie man das Äquivalent mit ReSharper zu tun. Ich habe den ReSharper Surround-Befehl (innerhalb des Code-Befehls) gefunden, aber wenn Sie die mit Anweisung, sie umgibt Ihren hervorgehobenen Codeblock, aber sie scheint nicht smart reicht es, die erste Zeile in die using-Klausel zu setzen. Das heißt, es ergibt sich:

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

was erfordert, dass ich die erste Zeile in die using-Klausel verschiebe. Gibt es einen einfacheren Weg?

13voto

Mindaugas Mozūras Punkte 1451

Resharper bietet diese Möglichkeit. Wenn Ihre Klasse IDisposable implementiert, drücken Sie einfach Alt-Enter:

(toter Link zum Bild "Vorher" entfernt)
(entfernter toter Bild-Link "Nach")

Außerdem müssen Sie den Cursor auf den Variablennamen setzen. Zum Beispiel so: SShot1 SShot2 SShot3

1voto

Maxime Rouiller Punkte 13433

Wenn Sie sich in einer Situation befinden, in der die Verwendung bereits typisiert ist und Sie einen Teil des Codes mit geschweiften Klammern umhüllen möchten, können Sie alternativ eine CTRL - E + U und dann 7 .

Die Auswahl wird mit geschweiften Klammern umschlossen.

1voto

SwampyFox Punkte 1095

Ich habe gerade diese Folge gesehen und mich gefragt, ob ich die gleiche Frage habe. Auf der Grundlage der Hinweise hier, fand ich, dass, wenn ich diesen Code hatte:

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

Wenn ich den Cursor auf die Sitzungsvariable in Zeile 2 setze und dann Alt-Eingabe drücke, erhalte ich diese Meldung:

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;

Es hat mich ein paar Mal erwischt, weil ich den Cursor nicht auf dem Variablennamen hatte, aber ich habe es zum Laufen gebracht.

Nur eine Randbemerkung: Ich sehe mir am liebsten Demonstrationen an, bei denen Code Rush verwendet wird, weil man dann visuelle Indikatoren hat, die zeigen, was vor sich geht. Ich frage mich, ob mich das stören würde, wenn ich nicht präsentieren würde.

Und Sie sind KEIN Resharper-Neuling: Du bist ein Resharper Padawan :)

Swampy

0voto

Howard Pinsley Punkte 10920

Ich frage mich, ob etwas mit meiner ReSharper-Einrichtung nicht stimmt. Wenn mein Cursor auf dem

Class1 c = new Class1();

Zeile im Codebeispiel unten, schlägt ReSharper nur vor, Verwendung von 'var' . Wenn Angebote NIEMALS Gesplittete Deklaration und Zuordnung NOR Konstrukt in Gebrauch nehmen ??

(Mindaugas - Ihr Kommentar zu DirectoryInfo ist natürlich richtig. Mein Fehler. Hoffentlich veranschaulicht dieses Beispiel besser, was ich sehe).

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();
        }
    }
}

0voto

Matas Vaitkevicius Punkte 53532

In Visual Studio 2013 lautet sie CTRL + E + U
Dies sollte zu folgendem Dialog führen

enter image description here

und dann A para using .

Ich hoffe, das spart Ihnen etwas Zeit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X