Überladungszuweisungsoperator in C#
-
Operatorüberladung in
C#
-
Verwenden Sie implizite Konvertierungsoperatoren, um das Überladen von Zuweisungsoperatoren in
C#
zu implementieren
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 namensvalue
.public struct Velocity { private readonly double value; }
-
Weisen Sie
Velocity
an, eine öffentlicheVelocity
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
undSubtraktion
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 ObjektVelocity
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;
}
}
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