Jest to jedna z moich ulubionych funkcjonalności z cyklu “ułatwiających życie” w Visual Studio:)
Snippety umożliwiają łatwe wstawienie kawałka “szablonowego” kodu – np. if…else, for, switch itd.
Dostępne snippety można przejrzeć wybierając z menu Tools->Code Snippets Manager. Można w tym miejscu tworzyć również swoje własne snippety.
Wstawić snippet do swojego kodu można poprzez wpisanie przypisanego do niego słowa i naciśnięcie tabulatora (szerzej o tym sposobie będzie dalej, ponieważ uważam go za zdecydowanie wygodniejszy) lub poprzez wybranie z menu Edit->InteliSense->Insert Snippet (kombinacja klawiszy: Ctrl+K, X), następnie wybranie Visual C# oraz wybranie żądanego snippetu.
Najfajniejsze i najprzydatniejsze wg mnie po kolei :
Cel: utworzenie dyrektywy kompilacji warunkowej (nie będę wchodzić w szczegóły działania poszczególnych kawałków kodu, ponieważ nie to jest przedmiotem tej notki;))
Słowo, które wpisujemy: #if (i naciskamy tab)
Otrzymujemy:
#if true
#endif
(kursor znajduje się na słowie true, dzięki czemu łatwo możemy zmienić je na takie jakiego potrzebujemy)
Cel: utworzenie dyrektywy pozwalającej na ukrywanie (zwijanie) kodu w edytorze
Słowo, które wpisujemy: #region
Otrzymujemy:
#region MyRegion
#endregion
(kursor znajduje się na słowie MyRegion, umożliwiając natychmiastową zmianę nazwy regionu)
Cel: utworzenie szkieletu klasy
Słowo, które wpisujemy: class
Otrzymujemy:
class MyClass
{
}
(kursor znajduje się na słowie MyClass)
Cel: utworzenie wywołania funkcji Console.Writeline
Słowo, które wpisujemy: cw
Otrzymujemy:
Console.WriteLine();
(kursor znajduje się w nawiasie celem wpisania tam tekstu jaki ma zostać wyświetlony)
Cel: utworzenie szkieletu pętli do…while
Słowo, które wpisujemy: do
Otrzymujemy:
do
{
} while (true);
(kursor znajduje się na słowie true – wpisujemy treść warunku)
Cel: utworzenie szkieletu instrukcji else
Słowo, które wpisujemy: else
Otrzymujemy:
else
{
}
(kursor znajduje się między nawiasami)
Cel: utworzenie szkieletu pętli for
Słowo, które wpisujemy: for
Otrzymujemy:
for (int i = 0; i < length; i++)
{
}
(kursor znajduje się na zmiennej i w pierwszym wyrażeniu, umożliwiając jej zmianę - jeśli w tym miejscu zmienimy i, to zmieni się ono też w pozostałych wyrażeniach; naciśnięcie tabulatora spowoduje przejście do zmiennej length w drugim wyrażeniu i umożliwi jej zmianę)
Cel: utworzenie szkieletu pętli foreach
Słowo, które wpisujemy: foreach
Otrzymujemy:
foreach (object var in collection_to_loop)
{
}
(kursor znajduje się na słowie object umożliwiając wyedytowanie kolejny parametrów - var, collection_to_loop)
Cel: utworzenie szkieletu pętli forr
Słowo, które wpisujemy: forr
Otrzymujemy:
for (int i = length - 1; i >= 0; i--)
{
}
(kursor znajduje się na zmiennej i w pierwszym wyrażeniu - działa podobnie jak snippet dla for, ale iteracja idzie w drugą stronę)
Cel: utworzenie szkieletu pętli if
Słowo, które wpisujemy: if
Otrzymujemy:
if (true)
{
}
(kursor znajduje się na słowie true)
Cel: utworzenie wywołania funkcji MessageBox.Show();
Słowo, które wpisujemy: mbox
Otrzymujemy:
MessageBox.Show("Test");
(kursor znajduje się na słowie Test)
Cel: utworzenie szkieletu instrukcji definiującej przestrzeń nazw
Słowo, które wpisujemy: namespace
Otrzymujemy:
namespace MyNamespace
{
}
(kursor znajduje się na słowie MyNamespace)
Cel: utworzenie szkieletu instrukcji switch
Słowo, które wpisujemy: switch
Otrzymujemy:
switch (switch_on)
{
default:
}
(kursor znajduje się na słowie switch_on)
Cel: utworzenie szkieletu instrukcji try...catch
Słowo, które wpisujemy: try
Otrzymujemy:
try
{
}
catch (Exception)
{
throw;
}
(kursor znajduje się na słowie Exception)
Cel: utworzenie szkieletu instrukcji while
Słowo, które wpisujemy: while
Otrzymujemy:
while (true)
{
}
(kursor znajduje się na słowie true)