web-dev-qa-db-fra.com

Quels modèles live ReSharper 4+ pour C # utilisez-vous?

Quels modèles ReSharper 4.0 pour C # utilisez-vous?

Partageons-les dans le format suivant:


[Titre]

Description facultative

Raccourci: raccourci
Disponible en: [AvailabilitySetting]

// Resharper template code snippet
// comes here

Propriétés des macros (si présent):

  • Macro1 - Valeur - EditableOccurence
  • Macro2 - Valeur - EditableOccurence

94
Rinat Abdullin

Lambda simple

Si simple, si utile - un peu de lambda:

Raccourci : x

Disponible : C # où l'expression est autorisée.

x => x.$END$

Macros: aucune.

30
Sean Kearon

Implémenter la méthode 'Dispose (bool)'

Implement Dispose Pattern de Joe Duffy 

Raccourci: dispose

Disponible en: C # 2.0+ fichiers où la déclaration du membre de type est autorisée

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;

Propriétés des macros :

  • MEMBER- Suggère une variable de System.IDisposable - Editable Occurence # 1
  • CLASS- contenant le nom du type
22
Ed Ball

Créer un nouveau dispositif de test unitaire pour certains types

Raccourci: ntf
Disponible dans: C # 2.0+ fichiers où la déclaration de membre de type ou la déclaration d'espace de nom est autorisée

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

Macros:

  • TypeToTest - none - # 2
  • Test - none - V
14
Rinat Abdullin

Vérifiez si une chaîne est nulle ou vide.

Si vous utilisez .Net 4, vous préférerez peut-être utiliser string.IsNullOrWhiteSpace ().

Raccourci : sne

Disponible dans : C # 2.0++ où l'expression est autorisée.

string.IsNullOrEmpty($VAR$)

Propriétés de la macro :

  • VAR - suggère une variable de type chaîne. Editible = true.
13
Sean Kearon

Créer un nouveau cas de test d'unité autonome

Raccourci: ntc
Disponible dans: C # 2.0+ fichiers où la déclaration de membre type est autorisée

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

Macros:

  • Test - none - V
11
Rinat Abdullin

Déclarez un enregistreur log4net pour le type actuel.

Raccourci: log

Disponible en: / Fichiers C # 2.0+ où la déclaration de membre type est autorisée

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

Propriétés des macros :

  • TYPE- Contenant le nom du type
10
Chris Brandsma

Test d'unité MS Test

Nouveau test d'unité de test MS utilisant la syntaxe AAA et la convention de dénomination figurant dans Art Of Unit Testing 

Raccourci: testing (ou tst, ou ce que vous voulez)
Disponible en: C # 2.0+ fichiers où la déclaration du membre de type est autorisée

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

    // Act


    // Assert

}

Propriétés des macros (si présent):

  • MethodName - Nom de la méthode testée.
  • StateUnderTest - Etat que vous essayez de tester 
  • ExpectedBehavior - Ce à quoi vous vous attendez 
9
Vaccano

Vérifier si la variable est nulle

Raccourci: ifn
Disponible en: C # 2.0 + fichiers

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

Vérifier si la variable n'est pas nulle

Raccourci: ifnn
Disponible en: C # 2.0 + fichiers

if (null != $var$)
{
    $END$
}
8
Chris Doggett

Écrire un résumé conforme à StyleCop pour le constructeur de classe

(si vous en avez assez de taper constamment un résumé standard long pour chaque constructeur afin qu'il soit conforme à la règle StyleCop SA1642)

Raccourci: csum

Disponible en: C # 2.0+

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

Macros:

  • nom de classe - contenant le nom du type - V
7
Dmitry Lobanov

Assert.AreEqual

Modèle simple pour ajouter des assertions à un test unitaire

Raccourci : ae
Disponible dans : dans les fichiers C # 2.0+ où l'instruction est autorisée

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

Version courante:

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

Beaucoup de Lambdas

Créez une expression lambda avec une déclaration de variable différente pour une imbrication facile.

Raccourci: la, lb, lc

Disponible en: C # 3.0+ fichiers où expression ou clause de requête est autorisée

la est défini comme:

x => x.$END$

lb est défini comme suit:

y => y.$END$

lc est défini comme:

z => z.$END$

Ceci est similaire à Sean Kearon ci-dessus, sauf que je définis plusieurs modèles vivants lambda pour une imbrication facile des lambdas. " la " est le plus couramment utilisé, mais d'autres sont utiles lorsqu'il s'agit d'expressions comme celle-ci:

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

Attends ça ...

Pause pour la saisie de l'utilisateur avant la fin d'une application console.

Raccourci: pause

Disponible en: / Fichiers C # 2.0+ où la déclaration est autorisée

System.Console.WriteLine("Press <ENTER> to exit...");
System.Console.ReadLine();$END$
6
James Kovacs

Génération de propriétés de dépendance

Génère une propriété de dépendance

Raccourci: dp
Disponible en: C # 3.0 où la déclaration du membre est autorisée

public static readonly System.Windows.DependencyProperty $PropertyName$Property =
        System.Windows.DependencyProperty.Register("$PropertyName$",
                                                   typeof ($PropertyType$),
                                                   typeof ($OwnerType$));

    public $PropertyType$ $PropertyName$
    {
        get { return ($PropertyType$) GetValue($PropertyName$Property); }
        set { SetValue($PropertyName$Property, value); }
    }

$END$

Propriétés des macros (si présentes):

PropertyName - Aucune macro - # 3
PropertyType - Type de devin attendu à ce stade - # 2
OwnerType - Contenant le nom du type - Aucune occurrence modifiable

6
Jonas Van der Aa

Mappage de propriété AutoMapper

Raccourci: fm

Disponible en: C # 2.0+ fichiers où l'instruction est autorisée

.ForMember(d => d$property$, o => o.MapFrom(s => s$src_property$))
$END$

Macros:

  • propriété - occurrence modifiable
  • src_property - occurrence éditable

Note:  

Je laisse le "point" lambda désactivé pour pouvoir frapper. immédiatement et obtenir propriété intellisense. Nécessite AutoMapper ( http://automapper.codeplex.com/ ). 

5
David Longnecker

Notifier la propriété modifiée

C’est mon préféré parce que je l’utilise souvent et que cela me demande beaucoup de travail.

Raccourci : npc

Disponible dans : C # 2.0+ où l'expression est autorisée.

if (value != _$LOWEREDMEMBER$)
{
  _$LOWEREDMEMBER$ = value;
  NotifyPropertyChanged("$MEMBER$");
}

Macros :

  • MEMBRE - Nom du type de membre. Non éditable. Note: assurez-vous que celui-ci est le premier de la liste.
  • LOWEREDMEMBER - Valeur de MEMBER avec le premier caractère en minuscule. Non éditable.

Usage : Dans un créateur de propriété comme celui-ci:

private string _dateOfBirth;
public string DateOfBirth
{
   get { return _dateOfBirth; }
   set
   {
      npc<--tab from here
   }
}

Il suppose que votre variable de support commence par un "_". Remplacez-le par ce que vous utilisez. Il suppose également que vous avez une méthode de changement de propriété qui ressemble à ceci:

private void NotifyPropertyChanged(String info)
{
   if (PropertyChanged != null)
   {
      PropertyChanged(this, new PropertyChangedEventArgs(info));
   }
}

En réalité, la version que j’utilise est à base de lambda (car j’adore mes lambdas!) Et produit le texte ci-dessous. Les principes sont les mêmes que ci-dessus.

public decimal CircuitConductorLive
{
   get { return _circuitConductorLive; }
   set { Set(x => x.CircuitConductorLive, ref _circuitConductorLive, value); }
}

C’est à ce moment-là que je n’utilise pas le très élégant et utile PostSharp pour faire toute la chose INotifyPropertyChanged sans effort , c’est.

5
Sean Kearon

Raccourci rapide ExpectedException

Juste un raccourci rapide à ajouter à mes attributs de test unitaire.

Raccourci : ee

Disponible en : Disponible en: C # 2.0+ fichiers où la déclaration du membre de type est autorisée

[ExpectedException(typeof($TYPE$))]
5
womp

Invoquer si nécessaire

Utile lors du développement d'applications WinForms où une méthode doit pouvoir être appelée à partir de threads non UI, et cette méthode doit ensuite diriger l'appel sur le thread UI.

Raccourci : inv

Disponible dans : L'instruction C # 3.0+ est autorisée

if (InvokeRequired)
{
    Invoke((System.Action)delegate { $METHOD_NAME$($END$); });
    return;
}

Macros

  • METHOD_NAME - Contenant le nom du membre de type

Vous devriez normalement utiliser ce modèle en tant que première instruction d'une méthode donnée et le résultat ressemble à:

void DoSomething(Type1 arg1)
{
    if (InvokeRequired)
    {
        Invoke((Action)delegate { DoSomething(arg1); });
        return;
    }

    // Rest of method will only execute on the correct thread
    // ...
}
4
Drew Noakes

Méthode d'installation NUnit

Raccourci: setup
Disponible en: Disponible en: C # 2.0 + fichiers où la déclaration de membre de type est autorisée

[NUnit.Framework.SetUp]
public void SetUp()
{
    $END$
}
4
paraquat

Méthode de test MSTest

C'est un peu nul, mais c'est utile. J'espère que quelqu'un en tirera quelque utilité.

Raccourci: testMethod

Disponible en: C # 2.0

[TestMethod]
public void $TestName$()
{
    throw new NotImplementedException();

    //Arrange.

    //Act.

    //Assert.
}

$END$
4
Daver

Méthode NUnit Teardown

Raccourci: démontage
Disponible en: Disponible en: C # 2.0 + fichiers où la déclaration de membre de type est autorisée

[NUnit.Framework.TearDown]
public void TearDown()
{
    $END$
}
4
paraquat

Créer un talon de cas de test pour NUnit

Celui-ci pourrait servir de rappel (de la fonctionnalité à implémenter ou à tester) qui apparaît dans le programme d'exécution des tests unitaires (comme tout autre test ignoré),

Raccourci: nts
Disponible dans: C # 2.0+ fichiers où la déclaration de membre type est autorisée

[Test, Ignore]
public void $TestName$()
{
    throw new NotImplementedException();
}
$END$
4
Rinat Abdullin

Nouveau C # Guid

Génère une nouvelle instance System.Guid initialisée avec une nouvelle valeur guid générée  

Raccourci: csguid Disponible en: en C # 2.0 + fichiers

new System.Guid("$GUID$")

Propriétés des macros :

  • GUID- Nouveau GUID - False
4
codekaizen

Assert Invoke Not Required

Utile lors du développement d'applications WinForms où vous voulez être sûr que le code s'exécute sur le bon thread pour un élément donné. Notez que Control implémente ISynchronizeInvoke.

Raccourci : ani

Disponible dans : L'instruction C # 2.0+ est autorisée

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

Macros

  • SYNC_INVOKE - Suggérer une variable de System.ComponentModel.ISynchronizeInvoke
3
Drew Noakes

Créez un contrôle d'intégrité pour vous assurer qu'un argument n'est jamais nul

Raccourci: eann
Disponible en: C # 2.0+ fichiers où l'instruction type est autorisée

Enforce.ArgumentNotNull($inner$, "$inner$");

Macros:

  • inner - Suggère paramètre - # 1

Remarques: Bien que ce fragment de code cible Open Source .NET Lokad.Shared library, il pourrait être facilement adapté à tout autre type de vérification d'argument.

3
Rinat Abdullin

Nouvelle classe COM

Raccourci : comclass

Disponible dans : Fichiers C # 2.0+ où la déclaration de membre de type ou la déclaration d'espace de nom est autorisée

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

Macros

  • GUID- Nouveau GUID
  • NOM- éditable
  • INTERFACE- éditable
3
Ian G

Trace - Writeline, avec format

Modèle très simple pour ajouter une trace avec une chaîne mise en forme (comme Debug.WriteLine le supporte déjà).

Raccourci: twlf
Disponible en: / Fichiers C # 2.0+ où l'instruction est autorisée

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

Propriétés des macros:

  • Argument - value - EditableOccurence
  • Masque - "{0}" - EditableOccurence
2
Ray Hayes

Nouvel faux isolateur Typemock

Raccourci : faux
Disponible dans : [dans les fichiers c # 2.0 où l'instruction est autorisée]

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

Propriétés des macros:
* $ TYPE $ - Suggère le type d'une nouvelle variable
* $ Name $ - Valeur de une autre variable ( Type ) avec le premier caractère en minuscule

1
Karsten

Rendre la méthode virtuelle

Ajoute un mot clé virtuel. Particulièrement utile lorsque vous utilisez NHibernate, EF ou un cadre similaire dans lequel les méthodes et/ou les propriétés doivent être virtuelles pour permettre le chargement différé ou le proxy.

Raccourci: v

Disponible en: / Fichier C # 2.0+ où la déclaration du membre de type est autorisée

virtual $END$

L'astuce ici est l'espace après virtuel, ce qui peut être difficile à voir ci-dessus. Le modèle actuel est "virtual $ END $" avec le code de reformatage activé. Cela vous permet d’aller au point d’insertion ci-dessous (noté |) et de taper v:

public |string Name { get; set; }
1
James Kovacs

Équivaut à

Ni .NET en général, ni le modèle par défaut “equals” ne permettent pas de créer facilement une bonne méthode simple Equals. Alors que icisontbeaucouppensées on comment écrire une bonne méthode Equals, je pense que ce qui suit suffit pour 90% des cas simples. Pour tout ce qui est plus compliqué - en particulier en matière d'héritage - il serait peut-être préférable de ne pas utiliser Equals du tout .

Raccourci: est égal à
Disponible en: C # 2.0+ membres de type

public override sealed bool Equals(object other) {
    return Equals(other as $TYPE$);
}

public bool Equals($TYPE$ other) {
    return !ReferenceEquals(other, null) && $END$;
}

public override int GetHashCode() {
    // *Always* call Equals.
    return 0;
}

Propriétés des macros :

  • TYPE- contenant le nom du type - non modifiable
1
Michael Kropat

Depuis que je travaille avec Unity en ce moment, j'en ai créé quelques-uns pour me faciliter la vie:


Type Alias

Raccourci : ta
Disponible en : * .xml; * .config 

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

Déclaration de type

C'est un type sans nom ni argument

Raccourci : tp
Disponible en : * .xml; * .config 

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

Déclaration de type (avec nom)

C'est un type avec un nom et aucun argument

Raccourci : tn
Disponible en : * .xml; * .config 

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

Déclaration de type avec constructeur

C'est un type avec un nom et aucun argument

Raccourci : tpc
Disponible en : * .xml; * .config 

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

etc....

1
Bryce Fischer

Bloc de configuration XML log4net

Vous pouvez importer le modèle directement:

<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>
1
Igor Brejc

Rhino Mocks Expect Méthodes

Raccourci : RhinoMocksExpectMethod

Disponible en: C # 2.0+ fichiers

Expect.Call($EXPECT_CODE$).Return($RETURN_VALUE$);

Raccourci : RhinoMocksExpectVoidMethod

Disponible en: C # 2.0+ fichiers

Expect.Call(delegate { $EXPECT_CODE$; });
0
Ray Vega

Empruntant à Drew Noakes excellente idée, voici une implémentation de invoke pour Silverlight.

Raccourci: dca

Disponible dans: fichiers C # 3.0

if (!Dispatcher.CheckAccess())
{
    Dispatcher.BeginInvoke((Action)delegate { $METHOD_NAME$(sender, e); });
    return;
}

$END$

Macros

  • $METHOD_NAME$ nom non éditable de la méthode contenant en cours.
0
jhappoldt

Spécifications machine - à cause de

En tant qu'utilisateur lourd de mspec, j'ai plusieurs modèles live spécialement pour MSpec. En voici un rapide pour configurer un élément et détecter l’erreur.

Raccourci: bece
Disponible dans: C # 2.0+ fichiers où la déclaration de membre de type ou la déclaration d'espace de nom est autorisée

bece - À cause de (avec exception)

Protected static Exception exception;
Because of = () => exception = Catch.Exception(() => $something$);
$END$

0
David Longnecker

Machine.Specifications - It

Raccourci: it

Disponible en: C # 2.0 + fichiers où la déclaration de membre de type ou la déclaration d'espace de nom est autorisée

Machine.Specifications.It $should_$ =
    () => 
    {

    };

Propriétés des macros (si présent):

  • should_ - (No Macro) - EditableOccurence
0
Richard Dingwall

Syntaxe de lecture d'enregistrement Rhino Mocks

Raccourci : RhinoMocksRecordPlaybackSyntax *

Disponible en: C # 2.0+ fichiers

Remarque: Cet extrait de code dépend du fait que MockRepository (var mocks = new new MockRepository();) est déjà déclaré et initialisé ailleurs.

using (mocks.Record())
{
    $END$
}

using (mocks.Playback())
{

}

* peut sembler un peu long pour un nom de raccourci mais avec intellisense, ce n’est pas un problème pour taper. vous avez également d’autres extraits de code pour Rhino Mocks; il est donc plus facile de les regrouper visuellement en les qualifiant.

0
Ray Vega