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
- Eén macro per antwoord, alstublieft!
- Hier zijn enkele voorbeelden voor NUnit-testopstellingen Standalone NUnit-testcasedie live-sjablonen beschrijven in het voorgestelde formaat.
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 Control
ISynchronizeInvoke
implementeert.
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:
- Argument–
value
– 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=" <configSections>
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 </configSections>

 <log4net debug="false">
 <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
 <param name="File" value="logs\\$LogFileName$.log" />
 <param name="AppendToFile" value="false" />
 <param name="RollingStyle" value="Size" />
 <param name="MaxSizeRollBackups" value="5" />
 <param name="MaximumFileSize" value="5000KB" />
 <param name="StaticLogFileName" value="true" />

 <layout type="log4net.Layout.PatternLayout">
 <param name="ConversionPattern" value="%date [%3thread] %-5level %-40logger{3} - %message%newline" />
 </layout>
 </appender>

 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
 <layout type="log4net.Layout.PatternLayout">
 <param name="ConversionPattern" value="%message%newline" />
 </layout>
 </appender>

 <root>
 <priority value="DEBUG" />
 <appender-ref ref="LogFileAppender" />
 </root>
 </log4net>
" 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; }