Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C#-Konstruktor

C#-Konstruktor

In diesem Tutorial lernen wir die C#-Konstruktoren und ihre Typen anhand von Beispielen kennen.

In C# ähnelt ein Konstruktor einer Methode, die aufgerufen wird, wenn ein Objekt der Klasse erstellt wird.

Im Gegensatz zu Methoden ist ein Konstruktor jedoch:


Erstellen Sie einen C#-Konstruktor

So erstellen wir einen Konstruktor in C#

class Car {
  
  // constructor
  Car() {
    //code
  }

}

Hier, Auto() ist ein Konstrukteur. Sie hat denselben Namen wie ihre Klasse.

Aufruf eines Konstruktors

Sobald wir einen Konstruktor erstellt haben, können wir ihn mit new aufrufen Stichwort. Zum Beispiel

new Car();

In C# wird ein Konstruktor aufgerufen, wenn wir versuchen, ein Objekt einer Klasse zu erstellen. Zum Beispiel

Car car1 = new Car();

Hier rufen wir Car() auf -Konstruktor, um ein Objekt car1 zu erstellen . Weitere Informationen zu Objekten finden Sie unter C#-Klassen und -Objekte.


Typen von Konstruktoren

Es gibt die folgenden Arten von Konstruktoren:


1. Parameterloser Konstruktor

Wenn wir einen Konstruktor ohne Parameter erstellen, wird er als parameterloser Konstruktor bezeichnet. Zum Beispiel

using System;

namespace Constructor {

  class Car {   

    // parameterless constructor
    Car() {
      Console.WriteLine("Car Constructor");
    }
 
    static void Main(string[] args) {

      // call constructor
      new Car();
      Console.ReadLine();
     
    }
  }
}

Ausgabe

Car Constructor

Im obigen Beispiel haben wir einen Konstruktor namens Car() erstellt .

new Car();

Wir können einen Konstruktor aufrufen, indem wir eine new hinzufügen Schlüsselwort zum Konstruktornamen.


2. C#-parametrisierter Konstruktor

In C# kann ein Konstruktor auch Parameter akzeptieren. Er wird als parametrisierter Konstruktor bezeichnet. Zum Beispiel

using System;

namespace Constructor {

  class Car {   

    string brand;
    int price;

    // parameterized constructor
    Car(string theBrand, int thePrice) {

      brand = theBrand;
      price = thePrice;
    }
  
    static void Main(string[] args) {

      // call parameterized constructor
      Car car1 = new Car("Bugatti", 50000);

      Console.WriteLine("Brand: " + car1.brand);
      Console.WriteLine("Price: " + car1.price);
      Console.ReadLine();
     
    }
  }
}

Ausgabe

Brand: Bugatti
Price: 50000

Im obigen Beispiel haben wir einen Konstruktor namens Car() erstellt . Der Konstruktor benötigt zwei Parameter:theBrand und derPreis .

Beachten Sie die Anweisung,

Car car1 = new Car("Bugatti", 50000);

Hier übergeben wir die beiden Werte an den Konstruktor.

Die an den Konstruktor übergebenen Werte werden als Argumente bezeichnet. Wir müssen dieselbe Anzahl und denselben Typ von Werten als Parameter übergeben.


3. Standardkonstruktor

Wenn wir in unserer Klasse keinen Konstruktor definiert haben, erstellt C# automatisch einen Standardkonstruktor mit leerem Code und ohne Parameter. Zum Beispiel

using System;

namespace Constructor {

  class Program {  

    int a;

    static void Main(string[] args) {

      // call default constructor
      Program p1 = new Program();

      Console.WriteLine("Default value of a: " + p1.a);
      Console.ReadLine();
     
    }
  }
}

Ausgabe

Default value of a: 0

Im obigen Beispiel haben wir keinen Konstruktor im Programm erstellt Klasse. Beim Erstellen eines Objekts rufen wir jedoch den Konstruktor auf.

Program p1 = new Program();

Hier erstellt C# automatisch einen Standardkonstruktor. Der Standardkonstruktor initialisiert jede nicht initialisierte Variable mit dem Standardwert.

Daher erhalten wir 0 als Wert von int Variable a .

Hinweis :Im Standardkonstruktor werden alle numerischen Felder mit 0 initialisiert, während String und Objekt mit null initialisiert werden.


4. Konstruktor in C# kopieren

Wir verwenden einen Kopierkonstruktor, um ein Objekt zu erstellen, indem wir Daten von einem anderen Objekt kopieren. Zum Beispiel

using System;

namespace Constructor {

  class Car {  
    string brand;

    // constructor
    Car (string theBrand) {
      brand = theBrand;
    }

    // copy constructor
    Car(Car c1) {
      brand = c1.brand;
    }

    static void Main(string[] args) {
      // call constructor
      Car car1 = new Car("Bugatti");

      Console.WriteLine("Brand of car1: " + car1.brand);

      // call the copy constructor
      Car car2 = new Car(car1);
      Console.WriteLine("Brand of car2: " + car2.brand);

      Console.ReadLine();
     
    }
  }
}

Ausgabe

Brand of car1: Bugatti
Brand of car2: Bugatti

Im obigen Programm haben wir einen Kopierkonstruktor verwendet.

Car(Car c1) {
  brand = c1.brand;
}

Hier akzeptiert dieser Konstruktor ein Objekt von Car als seinen Parameter. Beim Erstellen von car2 Objekt haben wir das car1 passiert Objekt als Argument für den Kopierkonstruktor.

Car car2 = new Car(car1);

Innerhalb des Kopierkonstruktors haben wir den Wert der Marke zugewiesen für auto1 der Marke widersprechen Variable für car2 Objekt. Daher haben beide Objekte den gleichen Wert der Marke .


5. Privater Konstrukteur

Wir können einen privaten Konstruktor mit private erstellen Zugriffsbezeichner. Dies wird in C# als privater Konstruktor bezeichnet.

Sobald der Konstruktor als privat deklariert ist, können wir keine Objekte der Klasse in anderen Klassen erstellen.

Beispiel 1:Privater Konstruktor

using System;

namespace Constructor {

  class Car {  
  
   // private constructor
   private Car () {
    Console.WriteLine("Private Constructor");    
    }
  }
    
    class CarDrive {

      static void Main(string[] args) {

      // call private constructor
      Car car1 = new Car();
      Console.ReadLine();
    }
  }
}

Im obigen Beispiel haben wir einen privaten Konstruktor Car() erstellt . Da auf private Member außerhalb der Klasse nicht zugegriffen wird, wenn wir versuchen, ein Objekt von Car zu erstellen

// inside CarDrive class
Car car1 = new Car();

wir erhalten eine Fehlermeldung

error CS0122: 'Car.Car()' is inaccessible due to its protection level

Hinweis :Wenn ein Konstruktor privat ist, können wir keine Objekte der Klasse erstellen. Daher sollten alle Felder und Methoden der Klasse als statisch deklariert werden, damit sie über den Klassennamen angesprochen werden können.


6. Statischer C#-Konstruktor

In C# können wir unseren Konstruktor auch statisch machen. Wir verwenden den static -Schlüsselwort zum Erstellen eines statischen Konstruktors. Zum Beispiel

using System;

namespace Constructor {

  class Car {  
  
   // static constructor
   static Car () {
    Console.WriteLine("Static Constructor");    
   }

    // parameterless constructor
    Car() {
     Console.WriteLine("Default Constructor");
   } 

    static void Main(string[] args) {

      // call parameterless constructor
      Car car1 = new Car();

      // call parameterless constructor again
      Car car2 = new Car();

      Console.ReadLine();
    }
  }
}

Im obigen Beispiel haben wir einen statischen Konstruktor erstellt.

static Car () {
  Console.WriteLine("Static Constructor");    
}

Wir können einen statischen Konstruktor nicht direkt aufrufen. Wenn wir jedoch einen regulären Konstruktor aufrufen, wird der statische Konstruktor automatisch aufgerufen.

Car car1 = new Car();

Hier rufen wir Car() auf Konstrukteur. Wie Sie sehen, wird neben dem regulären Konstruktor auch der statische Konstruktor aufgerufen.

Ausgabe

Static Constructor
Default Constructor
Default Constructor

Der statische Konstruktor wird nur einmal während der Ausführung des Programms aufgerufen. Deshalb wird beim erneuten Aufruf des Konstruktors nur der reguläre Konstruktor aufgerufen.

Hinweis :Wir können nur einen statischen Konstruktor in einer Klasse haben. Es darf keine Parameter oder Zugriffsmodifikatoren haben.


Überladen des C#-Konstruktors

In C# können wir zwei oder mehr Konstruktoren in einer Klasse erstellen. Dies wird als Konstruktorüberladung bezeichnet. Zum Beispiel

using System;

namespace ConstructorOverload {

  class Car {   
    
    // constructor with no parameter
    Car() {
      Console.WriteLine("Car constructor");
    }
     
    // constructor with one parameter
    Car(string brand) {
      Console.WriteLine("Car constructor with one parameter");
      Console.WriteLine("Brand: " + brand);
    }

    static void Main(string[] args) {

      // call constructor with no parameter
      Car car = new Car();

      Console.WriteLine();

      // call constructor with parameter
      Car car2 =  new Car("Bugatti");
     
      Console.ReadLine();
    }
  }
}

Ausgabe

Car constructor

Car constructor with one parameter
Brand: Bugatti

Im obigen Beispiel haben wir Car überladen Konstruktor:

Basierend auf der Nummer des beim Konstruktoraufruf übergebenen Arguments wird der entsprechende Konstruktor aufgerufen.

Hier,

Weitere Informationen finden Sie unter Überladen von C#-Konstruktoren.


C Sprache

  1. Verschachtelte C#-Klasse
  2. Überladen des C#-Konstruktors
  3. C++-Konstruktoren
  4. Java-Konstruktoren
  5. Java-Enum-Konstruktor
  6. Was ist Kfz-Motorkühlmittel?
  7. Java - Konstruktoren
  8. Zylinderkonfigurationen von Automotoren
  9. Erweiterte Autogarantie verstehen
  10. Warum ist mein Autoölfilter undicht?