Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

Overbelasting van C#-methode

C#-methode overbelasten

In dit artikel leer je aan de hand van voorbeelden over methode-overloading in C#.

In C# kunnen er twee of meer methoden in een klasse zijn met dezelfde naam, maar met verschillende getallen, typen en volgorde van parameters. Dit wordt overbelasting van de methode genoemd. Bijvoorbeeld:

void display() { ... }
void display(int a) { ... }
float display(double a) { ... }
float display(int a, float b) { ... }

Hier, de display() methode is overbelast. Deze methoden hebben dezelfde naam maar accepteren verschillende argumenten.

Opmerking :De retourtypen van de bovenstaande methoden zijn niet hetzelfde. Het is omdat overbelasting van methoden niet wordt geassocieerd met retourtypen. Overbelaste methoden kunnen hetzelfde of verschillende retourtypes hebben, maar ze moeten verschillende parameters hebben.


We kunnen methode-overbelasting op de volgende manieren uitvoeren:

1. Door het aantal parameters te wijzigen

We kunnen de methode overbelasten als het aantal parameters in de methoden anders is.

void display(int a) {
  ...
} 
...
void display(int a, int b) {
  ...
} 

Hier hebben we twee methoden in een klasse met dezelfde naam - display() . Het is mogelijk om meer dan één methode met dezelfde naam te hebben, omdat het aantal parameters in methoden verschillend is. Bijvoorbeeld,

using System;

namespace MethodOverload {

  class Program {  

    // method with one parameter
    void display(int a) {
      Console.WriteLine("Arguments: " + a);
    }
 
    // method with two parameters
    void display(int a, int b) {
      Console.WriteLine("Arguments: " + a + " and " + b);
    } 
    static void Main(string[] args) {

      Program p1 = new Program();
      p1.display(100);
      p1.display(100, 200);
      Console.ReadLine();
    }
  }
}

Uitvoer

Arguments: 100
Arguments: 100 and 200

In het bovenstaande voorbeeld hebben we de display() . overbelast methode:

  • één methode heeft één parameter
  • een andere heeft twee parameters

Op basis van het nummer van het argument dat tijdens de methodeaanroep is doorgegeven, wordt de bijbehorende methode aangeroepen.

  • p1.display(100) - roept de methode aan met een enkele parameter
  • p1.display(100, 200) - roept de methode aan met twee parameters

2. Door de gegevenstypen van de parameters te wijzigen

void display(int a) {
  ...
} 
...
void display(string b) {
  ...
} 

Hier hebben we twee methoden - display() met hetzelfde aantal parameters. Het is mogelijk om meer dan één display() . te hebben methode met hetzelfde aantal parameters omdat het gegevenstype van parameters in methoden anders is. Bijvoorbeeld,

using System;

namespace MethodOverload {

  class Program {  

    // method with int parameter
    void display(int a) {
      Console.WriteLine("int type: " + a);
    } 

    // method with string parameter
    void display(string b) {
      Console.WriteLine("string type: " + b);
    } 
    static void Main(string[] args) {

      Program p1 = new Program();
      p1.display(100);
      p1.display("Programiz");
      Console.ReadLine();
    }
  }
}

Uitvoer

int type: 100
string type: Programiz

In het bovenstaande programma hebben we de display() . overbelast methode met verschillende soorten parameters.

Op basis van het type argumenten dat tijdens de methodeaanroep wordt doorgegeven, wordt de bijbehorende methode aangeroepen.

  • p1.display(100) - oproepmethode met int type parameter
  • p1.display("Programiz") - oproepmethode met string type parameter

3. Door de volgorde van de parameters te wijzigen

void display(int a, string b) {
  ...
} 
...
void display(string b, int a) {
  ...
}

Hier hebben we twee methoden - display() . Het is mogelijk om meer dan één display() . te hebben methode met hetzelfde nummer en type parameter omdat de volgorde van het gegevenstype van parameters in methoden anders is. Bijvoorbeeld,

using System;

namespace MethodOverload {

  class Program {  

    // method with int and string parameters 
    void display(int a, string b) {
      Console.WriteLine("int: " + a);
      Console.WriteLine("string: " + b);
    } 

    // method with string andint parameter
    void display(string b, int a) {
      Console.WriteLine("string: " + b);
      Console.WriteLine("int: " + a);
    } 
    static void Main(string[] args) {

      Program p1 = new Program();
      p1.display(100, "Programming");
      p1.display("Programiz", 400);
      Console.ReadLine();
    }
  }
}

Uitvoer

int: 100
string: Programming
string: Programiz
int: 400

In het bovenstaande programma hebben we de display() . overbelast methode met verschillende volgordes van parameters.

Op basis van de volgorde van de argumenten die tijdens de methodeaanroep zijn doorgegeven, wordt de bijbehorende methode aangeroepen.

  • p1.display(100, "Programming") - oproepmethode met int en string parameter respectievelijk
  • p1.display("Programiz", 400) - oproepmethode met string en int parameter respectievelijk

C Taal

  1. C# abstracte klasse en methode
  2. C# Gedeeltelijke klasse en gedeeltelijke methode
  3. C# verzegelde klasse en methode
  4. C# Constructor Overbelasting
  5. Overbelasting van Python-operator
  6. Verilog-taak
  7. Verilog-weergavetaken
  8. C# - Methoden
  9. C# - Overbelasting van de operator
  10. C# - Anonieme methoden
  11. Wat is EPA-methode 21?