Welke ReSharper 4+ live-sjablonen voor C# gebruikt u?

Welke ReSharper 4.0-sjablonen voor C#gebruikt u?

Laten we deze delen in het volgende formaat:


[Titel]

Optionele beschrijving

Snelkoppeling:snelkoppeling
Beschikbaar in:[AvailabilitySetting]

// Resharper template code snippet
// comes here

Macro-eigenschappen(indien aanwezig):

  • Macro1– Waarde – EditableOccurence
  • Macro2– Waarde – EditableOccurence


Antwoord 1, autoriteit 100%

Eenvoudige Lambda

Zo eenvoudig, zo handig – een beetje lambda:

Snelkoppeling: x

Beschikbaar: C# waar expressie is toegestaan.

x => x.$END$

Macro’s: geen.


Antwoord 2, autoriteit 71%

Implementeer de ‘Dispose(bool)’-methode

Implementeer Joe Duffy’s verwijderingspatroon

Snelkoppeling:verwijderen

Beschikbaar in:C# 2.0+ bestanden waar type lidverklaring is toegestaan

public void Dispose()
{
    Dispose(true);
    System.GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
    if (!disposed)
    {
        if (disposing)
        {
            if ($MEMBER$ != null)
            {
                $MEMBER$.Dispose();
                $MEMBER$ = null;
            }
        }
        disposed = true;
    }
}
~$CLASS$()
{
    Dispose(false);
}
private bool disposed;

Macro-eigenschappen:

  • MEMBER– Stel variabele van System.IDisposable voor – Bewerkbare gebeurtenis #1
  • CLASS– Met typenaam

Antwoord 3, autoriteit 45%

Maak een nieuwe unit testopstelling voor een bepaald type

Snelkoppeling:ntf
Beschikbaar in:C# 2.0+ bestanden waar type lidverklaring of naamruimtedeclaratie is toegestaan

[NUnit.Framework.TestFixtureAttribute]
public sealed class $TypeToTest$Tests
{
    [NUnit.Framework.TestAttribute]
    public void $Test$()
    {
        var t = new $TypeToTest$()
        $END$
    }
}

Macro’s:

  • TypeToTest– geen – #2
  • Test– geen – V

Antwoord 4, autoriteit 42%

Controleer of een tekenreeks null of leeg is.

Als u .Net 4 gebruikt, geeft u er misschien de voorkeur aan string.IsNullOrWhiteSpace() te gebruiken.

Snelkoppeling: sne

Beschikbaar in: C# 2.0+ waar expressie is toegestaan.

string.IsNullOrEmpty($VAR$)

Macro-eigenschappen:

  • VAR – stel een variabele van het type string voor. Bewerkbaar = waar.

Antwoord 5, autoriteit 35%

Maak een nieuwe stand-alone unit-testcase

Snelkoppeling:ntc
Beschikbaar in:C# 2.0+ bestanden waar type lidverklaring is toegestaan

[NUnit.Framework.TestAttribute]
public void $Test$()
{
    $END$
}

Macro’s:

  • Test– geen – V

Antwoord 6, autoriteit 32%

Declareer een log4net logger voor het huidige type.

Snelkoppeling:log

Beschikbaar in:C# 2.0+ bestanden waar type lidverklaring is toegestaan

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof($TYPE$));

Macro-eigenschappen:

  • TYPE– Met typenaam

Antwoord 7, autoriteit 29%

MS-testeenheidtest

Nieuwe MS Test Unit-test met AAA-syntaxis en de naamgevingsconventie die te vinden is in de Art Of Unit Testing

Snelkoppeling:testen (of tst, of wat je maar wilt)
Beschikbaar in:C# 2.0+ bestanden waar type lidverklaring is toegestaan

[TestMethod]
public void $MethodName$_$StateUnderTest$_$ExpectedBehavior$()
{
    // Arrange
    $END$
    // Act
    // Assert
}

Macro-eigenschappen(indien aanwezig):

  • MethodName– De naam van de methode die wordt getest
  • StateUnderTest– De staat die u probeert te testen
  • ExpectedBehavior– Wat u verwacht dat er zal gebeuren

Antwoord 8, autoriteit 26%

Controleer of variabele null is

Snelkoppeling:ifn
Beschikbaar in:C# 2.0+ bestanden

if (null == $var$)
{
    $END$
}

Controleer of variabele niet null is

Snelkoppeling:ifnn
Beschikbaar in:C# 2.0+ bestanden

if (null != $var$)
{
    $END$
}

Antwoord 9, autoriteit 23%

Schrijf StyleCop-compatibele samenvatting voor klassenconstructeur

(als je het beu bent om constant lange standaard samenvattingen in te typen voor elke constructor zodat deze voldoet aan StyleCop regel SA1642)

Snelkoppeling:csum

Beschikbaar in:C# 2.0+

Initializes a new instance of the <see cref="$classname$"/> class.$END$

Macro’s:

  • klassenaam– Met typenaam – V

Antwoord 10, autoriteit 23%

Assert.AreEqual

Eenvoudig sjabloon om beweringen aan een eenheidstest toe te voegen

Snelkoppeling: ae
Beschikbaar in: in C# 2.0+ bestanden waar een statement is toegestaan

Assert.AreEqual($expected$, $actual$);$END$

Vloeiende versie:

Assert.That($expected$, Is.EqualTo($actual$));$END$

Antwoord 11, autoriteit 23%

Veel Lambda’s

Maak een lambda-expressie met een andere variabeledeclaratie voor eenvoudig nesten.

Snelkoppeling:la, lb, lc

Beschikbaar in:C# 3.0+ bestanden waar expressie of query-clausule is toegestaan

lais gedefinieerd als:

x => x.$END$

lbis gedefinieerd als:

y => y.$END$

lcis gedefinieerd als:

z => z.$END$

Dit is vergelijkbaar met Sean Kearon hierboven, behalve dat ik meerdere lambda-live-sjablonen definieer voor het eenvoudig nesten van lambda’s. “la” wordt het meest gebruikt, maar andere zijn handig bij het omgaan met uitdrukkingen als deze:

items.ForEach(x => x.Children.ForEach(y => Console.WriteLine(y.Name)));

Antwoord 12, autoriteit 10%

Nieuwe COM-klasse

Snelkoppeling: comclass

Beschikbaar in: C# 2.0+ bestanden waar type lidverklaring of naamruimtedeclaratie is toegestaan

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("$GUID$")]
public class $NAME$ : $INTERFACE$
{
    $END$
}

Macro’s

  • GUID– Nieuwe GUID
  • NAAM– Bewerkbaar
  • INTERFACE– Bewerkbaar

Antwoord 13, autoriteit 10%

Aanroep bevestigen niet vereist

Nuttig bij het ontwikkelen van WinForms-toepassingen waarbij u er zeker van wilt zijn dat de code wordt uitgevoerd op de juiste thread voor een bepaald item. Merk op dat ControlISynchronizeInvokeimplementeert.

Snelkoppeling: ani

Beschikbaar in: C# 2.0+ bestandsstatement is toegestaan

Debug.Assert(!$SYNC_INVOKE$.InvokeRequired, "InvokeRequired");

Macro’s

  • SYNC_INVOKE– Suggestie variabele van System.ComponentModel.ISynchronizeInvoke

Antwoord 14, autoriteit 6%

Trace – Schrijflijn, met formaat

Zeer eenvoudig sjabloon om een ​​trace toe te voegen met een opgemaakte string (zoals Debug.WriteLine al ondersteunt).

Snelkoppeling:twlf
Beschikbaar in:C# 2.0+ bestanden waar statement is toegestaan

Trace.WriteLine(string.Format("$MASK$",$ARGUMENT$));

Macro-eigenschappen:

  • Argumentvalue– EditableOccurence
  • Masker"{0}"– EditableOccurence

Antwoord 15, autoriteit 3%

Nieuwe Typemock isolator nep

Snelkoppeling: nep
Beschikbaar in: [in c# 2.0-bestanden waar statement is toegestaan]

$TYPE$ $Name$Fake = Isoleren.Fake.Instance();
Isolate.WhenCalled(() => $Name$Fake.)

Macro-eigenschappen:
* $TYPE$ – Suggestie voor een nieuwe variabele
* $Name$ – Waarde van een andere variabele(Type) met het eerste teken in kleine letters


Antwoord 16, autoriteit 3%

Sinds ik nu met Unity werk, heb ik er een paar bedacht om mijn leven een beetje makkelijker te maken:


Type alias

Snelkoppeling: ta
Beschikbaar in: *.xml; *.config

<typeAlias alias="$ALIAS$" type="$TYPE$,$ASSEMBLY$"/>

Typeverklaring

Dit is een type zonder naam en zonder argumenten

Snelkoppeling: tp
Beschikbaar in: *.xml; *.config

<type type="$TYPE$" mapTo="$MAPTYPE$"/>

Typeverklaring (met naam)

Dit is een type met naam en zonder argumenten

Snelkoppeling: tn
Beschikbaar in: *.xml; *.config

<type type="$TYPE$" mapTo="$MAPTYPE$" name="$NAME$"/>

Typeverklaring met constructeur

Dit is een type met naam en zonder argumenten

Snelkoppeling: tpc
Beschikbaar in: *.xml; *.config

<type type="$TYPE$" mapTo="$MAPTYPE$">
  <typeConfig>
    <constructor>
        $PARAMS$
    </constructor>
  </typeConfig>
</type>

enz….


Antwoord 17, autoriteit 3%

log4net XML-configuratieblok

U kunt de sjabloon rechtstreeks importeren:

<TemplatesExport family="Live Templates">
  <Template uid="49c599bb-a1ec-4def-a2ad-01de05799843" shortcut="log4" description="inserts log4net XML configuration block" text="  &lt;configSections&gt;&#xD;&#xA;    &lt;section name=&quot;log4net&quot; type=&quot;log4net.Config.Log4NetConfigurationSectionHandler,log4net&quot; /&gt;&#xD;&#xA;  &lt;/configSections&gt;&#xD;&#xA;&#xD;&#xA;  &lt;log4net debug=&quot;false&quot;&gt;&#xD;&#xA;    &lt;appender name=&quot;LogFileAppender&quot; type=&quot;log4net.Appender.RollingFileAppender&quot;&gt;&#xD;&#xA;      &lt;param name=&quot;File&quot; value=&quot;logs\\$LogFileName$.log&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;AppendToFile&quot; value=&quot;false&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;RollingStyle&quot; value=&quot;Size&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;MaxSizeRollBackups&quot; value=&quot;5&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;MaximumFileSize&quot; value=&quot;5000KB&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;StaticLogFileName&quot; value=&quot;true&quot; /&gt;&#xD;&#xA;&#xD;&#xA;      &lt;layout type=&quot;log4net.Layout.PatternLayout&quot;&gt;&#xD;&#xA;        &lt;param name=&quot;ConversionPattern&quot; value=&quot;%date [%3thread] %-5level %-40logger{3} - %message%newline&quot; /&gt;&#xD;&#xA;      &lt;/layout&gt;&#xD;&#xA;    &lt;/appender&gt;&#xD;&#xA;&#xD;&#xA;    &lt;appender name=&quot;ConsoleAppender&quot; type=&quot;log4net.Appender.ConsoleAppender&quot;&gt;&#xD;&#xA;      &lt;layout type=&quot;log4net.Layout.PatternLayout&quot;&gt;&#xD;&#xA;        &lt;param name=&quot;ConversionPattern&quot; value=&quot;%message%newline&quot; /&gt;&#xD;&#xA;      &lt;/layout&gt;&#xD;&#xA;    &lt;/appender&gt;&#xD;&#xA;&#xD;&#xA;    &lt;root&gt;&#xD;&#xA;      &lt;priority value=&quot;DEBUG&quot; /&gt;&#xD;&#xA;      &lt;appender-ref ref=&quot;LogFileAppender&quot; /&gt;&#xD;&#xA;    &lt;/root&gt;&#xD;&#xA;  &lt;/log4net&gt;&#xD;&#xA;" reformat="False" shortenQualifiedReferences="False">
    <Context>
      <FileNameContext mask="*.config" />
    </Context>
    <Categories />
    <Variables>
      <Variable name="LogFileName" expression="getOutputName()" initialRange="0" />
    </Variables>
    <CustomProperties />
  </Template>
</TemplatesExport>

Antwoord 18, autoriteit 3%

Maak methode virtueel

Voegt een virtueel zoekwoord toe. Vooral handig bij het gebruik van NHibernate, EF of een vergelijkbaar raamwerk waarbij methoden en/of eigenschappen virtueel moeten zijn om lui laden of proxying mogelijk te maken.

Snelkoppeling:v

Beschikbaar in:C# 2.0+ bestand waar type lidverklaring is toegestaan

virtual $END$

De truc hier is de spatie na virtueel, die hierboven misschien moeilijk te zien is. De eigenlijke sjabloon is “virtuele $END$” met herformatteringscode ingeschakeld. Hiermee kunt u naar het onderstaande invoegpunt gaan (aangeduid met |) en v:

. typen

public |string Name { get; set; }

Other episodes