Standardowe snipety w Visual Studio 2008

Snipety to kawałki kodu, które można wygenerować wpisując słowo kluczowe i naciskając dwa razy przycisk tabulatora [TAB]. Po wygenerowaniu kodu niektóre jego fragmenty są zielone, wpisanie w te pola wartości powoduje aktualizację innych pól kodu wygenerowanego za pomocą snipeta (patrz np. snippety właściwości).

Poniżej przedstawiam listę standardowych snipetów dostępnych w Visual Studio 2008 Express i kod jaki generują.

if

Snipet tworzy warunek, z polem do wpisania treści warunku.

Wynik działania:

	if (true)
 	{
	}

#region

Tworzy nowy region o domyślnej nazwie MyRegion, którą można zmienić.

Wynik działania:

	#region MyRegion
	#endregion

~

Tworzy destruktor klasy, w której snippet zostanie użyty (w tym wypadku został użyty w klasie Form1)

Wynik działania:

	~Form1()
 	{
	}

checked

Tworzy blok kodu checked.

Wynik działania:

	checked
 	{
	}

unchecked

Tworzy blok kodu unchecked

Wynik działania:

	unchecked
 	{
	}

class

Tworzy pustą deklarację klasy o domyślnej nazwie MyClass

Wynik działania:

	class MyClass
 	{
	}

ctor

Tworzy pusty konstruktor klasy w której snippet zostanie użyty (w tym wypadku Form1)

Wynik działania:

	public Form1 ()
 	{
	}

cw

Skrót do wygenerowania polecenia wypisania linii tekstu w konsoli.

Wynik działania:

	Console.WriteLine();

do

Tworzy pętlę do z możliwością określenia warunku trwania pętli.

Wynik działania:

	do
 	{
	} while (true);

else

Tworzy klauzulę else, zazwyczaj używane po użyciu snipeta if .

Wynik działania:

	else
 	{
	}

enum

Tworzy deklarację enumeratora o nazwie domyślnej MyEnum.

Wynik działania:

	enum MyEnum
 	{
	}

equals

Tworzy puste deklaracje metod Equals i GetHashCode, które trzeba oprogramować w celu porównywania obiektów własnej klasy.

Wynik działania:

        // override object.Equals
        public override bool Equals(object obj)
        {
            //       
            // See the full list of guidelines at
            //   http://go.microsoft.com/fwlink/?LinkID=85237  
            // and also the guidance for operator== at
            //   http://go.microsoft.com/fwlink/?LinkId=85238
            //
            if (obj == null || GetType() != obj.GetType())
            {
                return false;
            }
            // TODO: write your implementation of Equals() here
            throw new NotImplementedException();
            return base.Equals(obj);
        }
        // override object.GetHashCode
        public override int GetHashCode()
        {
            // TODO: write your implementation of GetHashCode() here
            throw new NotImplementedException();
            return base.GetHashCode();
        }

Exception

Czytaj podobne  A inne systemy operacyjne?

Tworzy deklarację własnej klasy dziedziczącej z klasy Exception.

Wynik działania:

    	[global::System.Serializable]
 	public class MyException : Exception
 	{
 	//
 	// For guidelines regarding the creation of new exception types, see
 	//    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp
 	// and
 	//    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
 	//
		public MyException() { }
 		public MyException(string message) : base(message) { }
 		public MyException(string message, Exception inner) : base(message, inner) { }
 		protected MyException(
 			System.Runtime.Serialization.SerializationInfo info,
 			System.Runtime.Serialization.StreamingContext context)
 		: base(info, context) { }
 	}

for

Generuje kod pętli for. Można w nim zmieniać poszczególne elementy.

Wynik działania:

	for (int i = 0; i < length; i++)
 	{
	}

foreach

Generuje kod pętli foreach.

Wynik działania:

	foreach (var item in collection)
 	{
	}

forr

Generuje pętlę for z malejącym argumentem i.

Wynik działania:

	for (int i = length - 1; i >= 0; i--)
 	{
	}

indexer

Tworzy  kod indeksatora.

Wynik działania:

	public object this[int index]
 	{
 		get { /* return the specified index here */ }
 		set { /* set the specified index to value here */ }
 	}

interface

Tworzy kod interfejsu o domyślnej nazwie IInterface.

Wynik działania:

	interface IInterface
 	{
	}

invoke

Tworzy kod do odpalania zdarzenia.

Wynik działania:

	EventHandler temp = MyEvent;
 	if (temp != null)
 	{
 		temp();
 	}

iterator

Generuje kod metody zwracającej enumerator klasy.

Wynik działania:

	public System.Collections.Generic.IEnumerator<ElementType> GetEnumerator()
 	{
 		throw new NotImplementedException();
 		yield return default(ElementType);
 	}

iterindex

Tworzy kod iteratora i iteratora o określonej nazwie (w tym wypadku MyView) z użyciem dodatkowej klasy MyViewIterator.

Wynik działania:

	public MyViewIterator MyView
        {
            get
            {
                return new MyViewIterator(this);
            }
        }
        public class MyViewIterator
        {
            readonly MyOuterClass outer;
            internal MyViewIterator(MyOuterClass outer)
            {
                this.outer = outer;
            }
            // TODO: provide an appropriate implementation here
            public int Length { get { return 1; } }
            public ElementType this[int index]
            {
                get
                {
                    //
                    // TODO: implement indexer here
                    //
                    // you have full access to MyOuterClass privates
                    //
                    throw new NotImplementedException();
                    return default(ElementType);
                }
            }
            public System.Collections.Generic.IEnumerator<ElementType> GetEnumerator()
            {
                for (int i = 0; i < this.Length; i++)
                {                 
                    yield return this[i];
                }
            }
        }

lock

Czytaj podobne  Pierwsze rozszerzenie do Opery 11

Tworzy blok kodu lock.

Wynik działania:

	lock (this)
 	{
	}

mbox

Tworzy kod do pokazania okna dialogowego.

Wynik działania:

	MessageBox.Show("Test");

namespace

Tworzy deklarację przestrzeni nazw.

Wynik działania:

	namespace MyNamespace
 	{
	}

prop

Tworzy deklarację właściwości klasy.

Wynik działania:

	public int MyProperty { get; set; }

propa

        public static int GetMyProperty(DependencyObject obj)
        {
            return (int)obj.GetValue(MyPropertyProperty);
        }
        public static void SetMyProperty(DependencyObject obj, int value)
        {
            obj.SetValue(MyPropertyProperty, value);
        }
        // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty MyPropertyProperty =
            DependencyProperty.RegisterAttached("MyProperty", typeof(int), typeof(ownerclass), new UIPropertyMetadata(0));

propdp

        public int MyProperty
        {
            get { return (int)GetValue(MyPropertyProperty); }
            set { SetValue(MyPropertyProperty, value); }
        }
        // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty MyPropertyProperty =
            DependencyProperty.Register("MyProperty", typeof(int), typeof(ownerclass), new UIPropertyMetadata(0));

propg

Tworzy deklarację właściwości publiczną, ale z możliwością zapisu z poziomu klasy.

Wynik działania:

	public int MyProperty { get; private set; }

sim

Tworzy statyczną metodę wejściową Main z argumentami zwracającą wynik działania programu.

Wynik działania:

	static int Main(string[] args)
 	{
		return 0;
 	}

struct

Tworzy deklarację struktury.

Wynik działania:

	struct MyStruct
 	{
	}

svm

Tworzy deklarację metody wejściowej statycznej Main  z argumentami, nie zwracającą wartości.

Wynik działania:

	static void Main(string[] args)
 	{
	}

switch

Tworzy kod bloku switch. Ciekawostka: jeżeli podamy jako switch_on np. zmienną typu wyliczeniowego, to

zostaną utworzone bloki switch dla każdej wartości tego enumeratora.

Wynik działania:

	switch (switch_on)
 	{
 		default:
 	}

try

Tworzy blok kodu try-catch do przechwytywania wyjątków.

Wynik działania:

	try
 	{
	}
 	catch (Exception)
 	{
		throw;
 	}

tryf

Tworzy blok try-finally.

Wynik działania:

	try
 	{
	}
 	finally
 	{
	}

unsafe

Czytaj podobne  Jak nauczyć się programowania od zera?

Tworzy blok do wykonywania niebezpiecznego kodu.

Wynik działania:

	unsafe
 	{
	}

using

Tworzy blok using do okreslenia jaki zasób będzie używany tylko w obrębie tego bloku.

Wynik działania:

	using(resource)
 	{
	}

while

Tworzy deklarację pętli while.

Wynik działania:

	while (true)
 	{
	}

No i to by było na tyle. Mam nadzieję, że te lista okaże się przydatna. Oprócz tych snippetów ze stron Microsoftu można ściągnąć więcej innych snippetów. Jednak powyższe są najczęściej używane. Dodatkowo można pisać własne.

Przeczytaj też

Najlepsza książka do Pythona Nie wiesz, z jakiej książki/ebooka uczyć się programowania w języku Python? Postanowiłem zrobić zestawienie 10 książek z Heliona na ten temat, abyś mó...
Komplet 28 ebooków i kursów, aby zostać programist... Od jakiegoś czasu dostaję zapytania na temat tego jakie książki, kursy i ebooki polecam. W związku z tym postanowiłem przygotować dzisiaj zestaw, któr...
120 tapet programistycznych za darmo do pobrania Trochę mi się nudziło, więc przygotowałem zestaw 120 tapet dla programistów. Możesz go pobrać. Tapety są w rozdzielczości 1366x768. Podzielone ...
10 fiszek do nauki programowania w Pythonie Uczysz się programowania w Pythonie? Pobierz te 10 fiszek, które ułatwią Ci zapamiętanie funkcji wbudowanych* w Pythona! Programowanie potrafi ...
Napisano w Kolumna Tagi: , , ,

Menu