Latest web development tutorials

Klasa C # (klasa)

Po zdefiniowaniu klasy definiuje plan dla typu danych. To rzeczywiście nie określa żadnych danych, ale określa nazwę klasy, co to znaczy, to jest to, co stanowi klasę obiektu i wykonać Jakie operacje na obiekcie. Obiekty są instancjami klas. Metody i zmienne stanowiące klasę staje członków klasy.

definicja klasy

Definicja klasy jest na początek, po którym następuje nazwa klasyklasy kluczowego.Ciało klasy, zawarte w parze nawiasów klamrowych. Poniżej znajduje się powszechną formą definicji klasy:

<Dostęp specifier> Klasa class_name 
{
    // zmienne użytkownika
    <Dostęp specifier> <typ danych> variable1;
    <Dostęp specifier> <typ danych> zmienna2;
    ...
    <Dostęp specifier> <typ danych> Variablen;
    // metody państwa
    <Dostęp specifier> <typ zwrotny> method1 (lista_parametrów) 
    {
        // Metoda ciała 
    }
    <Dostęp specifier> <typ zwrotny> Method2 (lista_parametrów) 
    {
        // Metoda ciała 
    }
    ...
    <Dostęp specifier> <typ zwrotny> methodN (lista_parametrów) 
    {
        // Metoda ciała 
    }
}

Proszę zwrócić uwagę:

  • Identyfikator Access <dostępu specifier> określa klasę reguły dostępu i jego członków. Jeśli nie podano, domyślny identyfikator dostępu. Domyślny identyfikator klasy Access jestwewnętrzny domyślne członkowie identyfikator dostępu jest prywatne.
  • Typ danych <typ danych> określa typ zmiennej, typ zwracany <typ zwrotny> określa typ danych zwracanych przez zwrotów metod.
  • Jeśli chcesz uzyskać dostęp do członka klasy, którego chcesz użyć kropki (.) Operator.
  • Operator Dot linki nazwisko imię i członków obiektu.

Poniższe przykłady ilustrują koncepcje omówione dotąd:

using System;
nazw BoxApplication
{
    Klasa Box
    {
       Długość publicznej podwójne; // Długość publicznej podwójna szerokość; // szerokość podwójna wysokość publicznej; // Wysokość}
    Klasa Boxtester
    {
        static void Main (string [] args)
        {
            Box Box1 = new Box (); // zadeklarować box1 typu Box
            Box Box2 = new Box (); // zadeklarować Box2 typu Box
            podwójna objętość = 0,0; // // wielkość Box1 wyszczególnieniem Box1.height = 5,0;
            Box1.length = 6,0;
            Box1.breadth = 7,0;

            // Box2 wyszczególnieniem Box2.height = 10,0;
            Box2.length = 12,0;
            Box2.breadth = 13,0;
           
            // Obj Box1 = Box1.height * Box1.length * Box1.breadth;
            Console.WriteLine ( "objętość Box1: {0}", objętość);

            // Obj Box2 = Box2.height * Box2.length * Box2.breadth;
            Console.WriteLine ( "objętość Box2: {0}", objętość);
            Console.ReadKey ();
        }
    }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Objętość box1: 210
Objętość Box2: 1560

Funkcje państwa i pakiet

Funkcje składowe klasy jest to definicja prototyp lub funkcja w definicji klasy, podobnie jak każdej innej zmiennej. Jako członek klasy, może działać na dowolnej klasy obiektu, wszystkich członków i ma dostęp klasę obiektu.

Zmienne użytkownika są właściwości obiektów (z punktu widzenia projektowania) i pozostają prywatne do wdrożenia pakietu. Te zmienne mogą być stosowane w celu uzyskiwania dostępu do funkcji składowych publicznych.

Użyjmy powyższe koncepcje ustawić i uzyskać wartość innego typu członków klasy:

using System;
nazw BoxApplication
{
    Klasa Box
    {
       prywatne podwójnej długości; // Długość prywatny pokój wszerz; // szerokość prywatne podwójna wysokość; // wysokość public void setlength (podwójne len)
       {
            długość = len;
       }

       public void setBreadth (podwójne wyl)
       {
            Szerokość = BRE;
       }

       public void setHeight (podwójne hei)
       {
            height = hei;
       }
       public double getVolume ()
       {
           Długość powrotu * szerokość * wysokość;
       }
    }
    Klasa Boxtester
    {
        static void Main (string [] args)
        {
            Box Box1 = new Box (); // zadeklarować box1 typu Box
            Box Box2 = new Box (); // zadeklarować Box2 typu Box
            podwójnej objętości; // // Box1 objętość wyszczególnieniem Box1.setLength (6,0);
            Box1.setBreadth (7,0);
            Box1.setHeight (5,0);

            // Box2 wyszczególnieniem Box2.setLength (12,0);
            Box2.setBreadth (13,0);
            Box2.setHeight (10,0);
       
            // Wielkość Box1 objętości = Box1.getVolume ();
            Console.WriteLine ( "objętość Box1: {0}", objętość);

            // Wielkość Box2 objętości = Box2.getVolume ();
            Console.WriteLine ( "objętość Box2: {0}", objętość);
           
            Console.ReadKey ();
        }
    }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Objętość box1: 210
Objętość Box2: 1560

C # konstruktory

Konstruktor klasy jest specjalna funkcja składowa klasy wykonywane podczas tworzenia nowej klasy obiektów.

Nazwa Nazwa konstruktora klasy dokładnie takie same, nie ma typ zwracany.

Poniższy przykład ilustruje koncepcję konstruktora:

using System;
nazw LineApplication
{
   Klasa Linia
   {
      prywatne długość dwukrotnie; // długość linia linia publicznego ()
      {
         Console.WriteLine ( "Obiekt został stworzony");
      }

      public void setlength (podwójne len)
      {
         długość = len;
      }
      public double getLength ()
      {
         długość powrotu;
      }

      static void Main (string [] args)
      {
         linia linia linia = new ();    
         // Ustaw długość linii line.setLength (6,0);
         Console.WriteLine ( "Długość linii: {0}", line.getLength ());
         Console.ReadKey ();
      }
   }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Utworzono obiekty długość linii: 6

Domyślny konstruktor nie ma parametrów.Ale jeśli potrzebujesz konstruktora z parametrem może mieć argumenty, to konstruktor nazywaparametryzowane konstruktora.Ta technika może pomóc w tworzeniu obiektu, gdy obiekt do przypisania wartości początkowych, zobacz następujące konkretne przykłady:

using System;
nazw LineApplication
{
   Klasa Linia
   {
      prywatne długość dwukrotnie; // długość linii miejskiej (linia podwójna len) {// konstruktor parametryzowane
         Console.WriteLine ( "obiekt został utworzony, długość = {0}", len);
         długość = len;
      }

      public void setlength (podwójne len)
      {
         długość = len;
      }
      public double getLength ()
      {
         długość powrotu;
      }

      static void Main (string [] args)
      {
         linia linia = nowa linia (10,0);
         Console.WriteLine ( "Długość linii: {0}", line.getLength ()); 
         // Ustaw długość linii line.setLength (6,0);
         Console.WriteLine ( "Długość linii: {0}", line.getLength ()); 
         Console.ReadKey ();
      }
   }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

został utworzony obiekt, długość = 10
Długość linii: 10
Długość linii: 6

W języku C # destructor

KlasaDestruktor jest specjalną funkcją składową klasy, jeśli typ obiektu jest poza zasięgiem.

Nazwa destruktora jest przed nazwą klasy o falistym (~) jako przedrostek, nie zwraca wartości, potrzeba żadnych parametrów.

Destructor na koniec programu (na przykład zamknięcie plików wolnej pamięci, itd.) Przed wprowadzeniem środków. Destruktory nie mogą być dziedziczone lub przeciążony.

Poniższy przykład ilustruje koncepcję destructor:

using System;
nazw LineApplication
{
   Klasa Linia
   {
      prywatne długość dwukrotnie; // długość linia linia publicznego () {// konstruktor
         Console.WriteLine ( "Obiekt został stworzony");
      }
      ~ Linia () {// destruktor
         Console.WriteLine ( "Obiekt został usunięty");
      }

      public void setlength (podwójne len)
      {
         długość = len;
      }
      public double getLength ()
      {
         długość powrotu;
      }

      static void Main (string [] args)
      {
         linia linia linia = new ();
         // Ustaw długość linii line.setLength (6,0);
         Console.WriteLine ( "Długość linii: {0}", line.getLength ());           
      }
   }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Utworzono obiekty długość linii: 6
Usuwane obiekty 

C # static class członkiem

Możemy użyć słów kluczowych członkiem klasystatyczne static.Kiedy zadeklarować członkiem klasa jest statyczne, co oznacza, że ​​bez względu na to, ilu klasy obiekt jest tworzony, jest tylko jedna kopia statycznych członków.

Tylko jedno wystąpienie członków słowa kluczowegostatic oznacza, że klasa.Zmienne statyczne wykorzystywane do definiowania stałych, ponieważ ich wartość może być wywołana bezpośrednio, bez potrzeby tworzenia instancji klasy klasy do uzyskania. Zmienne statyczne mogą być inicjowane w definicji zewnętrznej funkcji składowej lub klasy. Można również zainicjować zmienne statyczne zdefiniowane w klasie.

Poniższy przykład demonstruje użyciezmiennych statycznych:

using System;
nazw StaticVarApplication
{
    Klasa StaticVar
    {
       public static int num;
        public void count ()
        {
            num ++;
        }
        public int getNum ()
        {
            powrót num;
        }
    }
    Klasa StaticTester
    {
        static void Main (string [] args)
        {
            StaticVar s1 = new StaticVar ();
            StaticVar s2 = new StaticVar ();
            s1.count ();
            s1.count ();
            s1.count ();
            s2.count ();
            s2.count ();
            s2.count ();         
            Console.WriteLine ( "s1 zmiennej num: {0}", s1.getNum ());
            Console.WriteLine ( "s2 zmiennej num: {0}", s2.getNum ());
            Console.ReadKey ();
        }
    }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

s1 zmiennej num: 6
s2 zmiennej num: 6

Można również umieścićfunkcją członkiem jest zadeklarowana jako statyczna.Funkcje te mają dostęp tylko zmienne statyczne. Funkcja statyczna przed utworzeniem obiektu, że istnieje. Poniższy przykład demonstruje użyciefunkcji statycznych:

using System;
nazw StaticVarApplication
{
    Klasa StaticVar
    {
       public static int num;
        public void count ()
        {
            num ++;
        }
        public static int getNum ()
        {
            powrót num;
        }
    }
    Klasa StaticTester
    {
        static void Main (string [] args)
        {
            StaticVar s = new StaticVar ();
            s.count ();
            s.count ();
            s.count ();                   
            Console.WriteLine ( "zmienna num: {0}", StaticVar.getNum ());
            Console.ReadKey ();
        }
    }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Zmienna num: 3