Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Code snippets - ett behändigt hjälpmedel i Visual Studio 2005

Postad 2005-12-01 av Simon Dahlbacka i sektionen ASP.NET, C#, Okategoriserat med 1 Kommentarer | Läst av: 7043, Betyg: 62%

Förord

"Automatisera" återkommande kod i Visual Studio 2005 med hjälp av Code Snippets.
Innehåll
  » Vad är en code snippet?
  » Hur gör jag då en code snippet?
  » Strukturen i en .snippet fil
  » Huvuddelen
  » Deklarationsdelen
  » Koddelen
I och med Visual Studio 2005 så finns möjligheten att göra egna så kallade snippets för att slippa skriva samma kod om och om igen (för det vill väl ändå ingen göra?).


Vad är en code snippet?

En snippet är ett block med text som infogas på lämpligt ställe men det innehåller även en del logik, så det betydligt bättre än att bara klippa och klistra.

För att ta ett exempel:

Låt säga att jag i mitt kodande märker att jag ofta återkommer till en sån här kodsnutt:

if (m_resource != null) {
m_resource.Dispose();
m_resource = null;
}


Då kan jag göra detta till en code snippet, där m_resource är en variabel, som ändras på alla ställen automatiskt ifall jag vill använda en annan variabel.


Hur gör jag då en code snippet?

En code snippet definieras i en xml fil med extensionen .snippet. Denna kan med fördel editeras i Visual Studio eftersom du då får Intellisense från schemat för snippets. Vill man komma enkelt undan kan man utgå från en färdig snippet.


Strukturen i en .snippet fil






...



...


...






Filen består egentligen av tre huvuddelar, ett huvud (header), en deklarationsavdelning, och själva koden för snippeten.


Huvuddelen

I huvuddelen finns meta information om snippeten, så som namn, shortcut, beskrivning, typ och dylik information.



Dispose a resource
dres
dispose resource after null check

Expansion




De flesta fälten här är självförklarande, shortcut är det man kan (börja) skriva för att infoga snippeten direkt via Intellisensen. Snippet typer finns det tre olika: Expansion, SurroundsWith och Refactoring. I denna artikel kommer främst att ta upp snippets av Expansion typ, men även nämna nåt kort om snippets av SurroundsWith typ.

Expansion typer är sådana som helt enkelt kan klistras in i koden som ett block av kod (eller annat önskat innehåll) vid kursorpositionen.

SurroundsWith typer är sådana som omringar markerad kod med ny kod. I dessa har man tillgång till variabeln $selection$ som motsvarar markerad kod. Mer om variabler senare.


Deklarationsdelen

I deklarationsdelen deklarerar man variabler som man använder i koddelen. $end$ är en fördefinerad variabel som visar vart man vill att kursorn skall hamna efter att man fyllt i snippeten.




var
Name of resource
m_resource




För snippeten i exemplet behöver jag endast en variabel, jag ger den id:t var, vilket betyder att jag i koden kan använda den som $var$. Default anger vilket utgångsvärde variabeln skall ha.


Koddelen

Sen har vi bara koddelen kvar. Som man antagligen kan gissa sej fram till så är det här den egentliga koden för snippeten finns, den skrivs direkt i en CDATA sektion innanför Code taggarna. Language attributet talar om vilket språk det är frågan om. Jag kommer att använda mej av C# i mina exempel.

Koddelen för vårt exempel ser ut som följande:

if ($var$ != null) {
$var$.Dispose();
$var$ = null;
}
$end$]]>


Den fullständiga koden för exempel snippeten ser då ut så här:





Dispose a resource
dres
Dispose resource
Simon Dahlbacka

Expansion





var
Name of resource variable
m_resource


if ($var$ != null) {
$var$.Dispose();
$var$ = null;
}
$end$]]>






Denna kan jag spara under My Documents\Visual Studio 2005\Code Snippets\Visual C#\My Code Snippets. När jag har gjort detta kan jag använda den i Visual Studio direkt via intellisensen alternativt via högerklick -> Insert snippet...



efter att jag tabbat två gånger och därmed infogat snippeten (första gången för att komplettera snippetnamnet i intellisensen och andra gången för att infoga snippeten) så ser det ut på följande vis:



Nu kan jag editera m_resource på lämpligt sätt, och alla ställen (i snippeten) uppdateras automagiskt. Ifall jag har flera variabla fält i min snippet så kan jag förflytta mej mellan dem med hjälp av tabben.

Ett annat möjligt användningsområde är boilerplate text/licenstext i början av filer. I programarkivet (Programarkivet:Code snippets exempel) finns ovanstående exempelsnippet och en med en header som ser ut ungefär så här:



Detta var ett liten introduktion till möjliga användningsområden för code snippets. (Noteras kan att VB.NET IDE:n verkar ha ännu bättre stöd för code snippets, men då jag inte använder VB.NET har jag inte utforskat dom möjligheterna desto mera)

Kommentarer mottas gärna!

PS. På grund av Pellesofts CMS var jag tvungen att lämna ett mellanrum i sluttaggen för Code ifall någon undrar varför det finns där..
Upp

1 Kommentarer


  1. Pelle Johansson
    5 dec 2005

    Kanoners, välskrivet och formulerat så alla förstår såväl hur man gör - som nyttan med funktionerna.

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
1 334
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies