erstellen eines alias für eine Funktion den Namen in C#
Möchte ich zum erstellen eines alias für eine Funktion Namen in C#.
Gibt es eine Möglichkeit, aber das überladen von Funktionen?
public class Test
{
public void A()
{
...
}
}
Möchte ich nennen, B ersetzen Eine gleiche unten.
var test = new Test();
test.B();
- Was ist der alias für ?
- Auch wenn Sie etwas überladen, du bist nicht aliasing, da es die gleichen Bezeichner.
- Sie präsentieren uns mit einem (zerbrochenen?) Lösung für einige Probleme, die Sie stoßen. Wir würden wahrscheinlich nicht viel besser, wenn Sie uns sagen können, was das problem ist, dass Sie versuchen zu lösen.
- Also, die richtige Antwort ist:
No, C# does not have method aliasing
. Warum ist schwer zu geben, gerade, weiterleiten, beantworten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine extension-Methode
Aber es ist nicht ein alias. Es ist ein wrapper.
BEARBEITEN
ps: ich Stimme mit den Kommentatoren, die auf Ihre Frage, wir würden in der Lage sein, bessere Antworten, wenn wir wüssten, was Sie wirklich wollte, zu tun, wenn wir verstanden haben, das problem, das Sie versuchen zu lösen.
Sehe ich nicht wirklich den Zeitpunkt der Erstellung der oben genannten extension-Methode.
ich bin überrascht, dass niemand erwähnt hat- Delegierten. Es ist wohl als in der Nähe eine Methode alias wie kommst du in C#:Tatsächlich funktionieren Aliase sind mehr Delegierten in C# - Terminologie (wie Funktionszeigern in C++). Hier ist einer:
Aber Sie haben, nennen dies als B. Invoke() wie es in der parameterlose. Wenn es noch ein oder mehr Parameter, das wäre nicht das problem sein.
Invoke()
. NurTest.B();
Dieser ist so alt, aber ich habe eine Antwort zu , warum eine person kann wollen, alias Namen einer Methode. Es passiert die ganze Zeit. Denn der Entwickler hat die Methode einen Namen, der keinen Sinn macht oder es einfach nicht genau beschreiben Sie den Zweck der Methode. Die Methode wird aufgerufen, so viele Male in einer alten, gut gewürzt Lösung. Also eher die Durchführung einer großen Umgestaltung und die Wiederholung der Prüfungen, die nicht gerechtfertigt werden kann, weil der eine schlecht benannte Methode, geben Sie ihm einfach ein alias, das macht Sinn. So neue code richtig Lesen in der Zukunft.
also Ein grid-Steuerelement gespeichert ist, und gibt es eine Methode namens IsReferenceSelectedSendEmail. Der name deutet an, dass die Methode zu identifizieren, wenn der Benutzer die ausgewählte Referenz in das grid ist SendEmail. Was die Methode wirklich tut, ist eine Iteration über alle Referenzen und identifiziert, wenn einer von Ihnen ist SendEmail.
Einfache Lösung. Alias-die Methode als AnyReferenceIsSendEmail, so dass zukünftige code richtig Lesen: wenn ( AnyReferenceIsSendEmail() )...
Nun, wenn wir nur können ein Schlüsselwort "unless" zu negieren, eine if-Bedingung.
IMO
C# ist eine Objekt-orientierte Sprache, so dass Sie cant erstellen "alias-Funktion". Sie nur Bearbeiten können, mit Klassen. Wie es bereits erwähnt wurde, können Sie erweitern die Klasse mit der Erweiterung Methode können auch abgeleitete Klassen und erstellen neue Methode, die Sie nennen würde-abgeleitete Methode:
Aber wenn Sie wünschen, rufen Sie
B()
auf der ersten KlasseTest
Sie haben nur einen Weg - Erstellung von Erweiterung Methode.Dieser funktioniert.