Warum eine null-cast als parameter?
Wann und warum würde jemand das tun Sie Folgendes:
doSomething( (MyClass) null );
Haben Sie jemals getan? Könnten Sie bitte teilen Sie Ihre Erfahrungen?
- Vielleicht auch nur ein unerfahrener Programmierer? Oder jemand, der verändert den code von doSomething((cast)etwas); und wollte es ändern auf null, und einfach nicht die Mühe zu entfernen, die Besetzung? Ist es in mehr als einem Ort oder nur eine Instanz?
- Ich kann mich nicht erinnern, wo ich ihn gelesen habe, aber ich habe das gesehen und gelernt, dass Sie werfen kann, ist ein null-Wert an ein Objekt. Das problem ist, ich kann nicht finden, eine angemessene Szenario! 😛
- Mögliche Duplikate von Warum cast null-Objekt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn
doSomething
überlastet ist, müssen Sie die cast der null explizit aufMyClass
also die richtige überladung gewählt:Einem nicht-erfundenen situation, wo Sie brauchen, um zu Stimmen, wenn Sie anrufen, eine varargs-Funktion:
Der letzten Zeile wird die folgende Warnung:
Lassen Sie uns sagen, Sie haben diese beiden Funktionen, und davon ausgehen, dass Sie akzeptieren
null
als gültigen Wert für den zweiten Parameter.void ShowMessage(String msg, Control parent);
void ShowMessage(String msg, MyDelegate callBack);
Diese beiden Methoden unterscheiden sich nur durch die Art Ihrer zweiten Parameter. Wenn Sie möchten, verwenden Sie eine von Ihnen mit einem
null
als zweiten parameter müssen Sie werfen dienull
um den Typ des zweiten Arguments der entsprechenden Funktion, so dass für den compiler entscheiden, welche Funktion aufgerufen wird.Aufruf der ersten Funktion:
ShowMessage("Test", (Control) null);
Zum zweiten:
ShowMessage("Test2", (MyDelegate) null);