Überladungszuweisungsoperator in C#

Muhammad Zeeshan 12 Oktober 2023
  1. Operatorüberladung in C#
  2. Verwenden Sie implizite Konvertierungsoperatoren, um das Überladen von Zuweisungsoperatoren in C# zu implementieren
Überladungszuweisungsoperator in C#

In diesem Artikel erfahren Sie, wie Sie Zuweisungsoperatoren mit C# überladen. Schauen wir uns zuerst das Überladen von Operatoren an.

Operatorüberladung in C#

Eine Methode zur Neudefinition eines eingebauten Operators wird als Operatorüberladung bezeichnet. Wenn einer oder beide Operanden vom benutzerdefinierten Typ sind, können wir benutzerdefinierte Implementierungen vieler verschiedener Operationen erstellen.

Verwenden Sie implizite Konvertierungsoperatoren, um das Überladen von Zuweisungsoperatoren in C# zu implementieren

Implizite Konvertierungsoperationen können entwickelt werden. Sie zu unveränderlichen Strukturen zu machen, ist ein weiterer kluger Schachzug.

Die Primitiven sind genau das, und das macht es unmöglich, von ihnen zu erben.

Im folgenden Beispiel entwickeln wir einen impliziten Konvertierungsoperator zusammen mit Additions- und anderen Operatoren.

  • Importieren Sie zunächst die folgenden Bibliotheken:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    
  • Wir erstellen eine Struktur namens Velocity und erstellen eine Double-Variable namens value.
    public struct Velocity {
      private readonly double value;
    }
    
  • Weisen Sie Velocity an, eine öffentliche Velocity zu erstellen, die eine Variable als Parameter erhält.
    public Velocity(double value) {
      this.value = value;
    }
    
  • Jetzt erstellen wir einen impliziten Operator Velocity.
    public static implicit operator Velocity(double value) {
      return new Velocity(value);
    }
    
  • Dann erstellen wir die Operatoren Addition und Subtraktion zum Überladen.
    public static Velocity operator +(Velocity first, Velocity second) {
      return new Velocity(first.value + second.value);
    }
    public static Velocity operator -(Velocity first, Velocity second) {
      return new Velocity(first.value - second.value);
    }
    
  • Zuletzt rufen wir in der Methode Main() das Objekt Velocity zum Überladen auf.
    static void Main() {
      Velocity v = 0;
      v = 17.4;
      v += 9.8;
    }
    

Vollständiger Quellcode:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

public struct Velocity {
  private readonly double value;

  public Velocity(double value) {
    this.value = value;
  }
  public static implicit operator Velocity(double value) {
    return new Velocity(value);
  }
  public static Velocity operator +(Velocity first, Velocity second) {
    return new Velocity(first.value + second.value);
  }
  public static Velocity operator -(Velocity first, Velocity second) {
    return new Velocity(first.value - second.value);
  }
}

class Example {
  static void Main() {
    Velocity v = 0;
    v = 17.4;
    v += 9.8;
  }
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Verwandter Artikel - Csharp Operator