C# Override mit verschiedenen Parametern?

Hier ist ein Beispiel, was ich Suche zu tun.

public class A
{
    public virtual void DoSomething(string a)
    {
      //perform something
    }
}
public class B : A
{
    public Override void DoSomething(string a, string b)
    {
      //perform something slightly different using both strings
    }
}

So, ich möchte überschreiben DoSomething der Klasse A und erlauben die übergabe eines zweiten Parameters an. Ist das möglich?

Nein, es ist nicht überschreiben. Es ist überladen.
Sie erstellen eine zweite überladung der ersten Methode. Sie deklarieren es als virtual wenn Sie möchten, dass es überschrieben wird in abgeleiteten Klassen ist es aber nicht überschreiben alles selbst.
Einfach Unmöglich! Die überschreibende Methode muss die gleiche Signatur.
Wenn es möglich wäre, was würden Sie erwarten, dass dieser code zu tun? A a = new B(); a.DoSomething(""); Was sollte der zweite parameter übergeben B.DoSomething? Macht keinen Sinn für mich.

InformationsquelleAutor Qinusty | 2014-12-18

Schreibe einen Kommentar