SetZIndex
ist definiert auf der Panel
Klasse, die aus Canvas
ableitet. Der Compiler generiert eine Warnung, dass Sie eine statische Methode für einen Untertyp verwenden. Dies ist kein tatsächliches Problem, aber es kann zu Verwirrungen führen, wenn es auf bestimmte Arten verwendet wird. Da SetZIndex
nicht zurückgegeben wird, sollte das kein Problem sein.
Aber stellen Sie wie folgt vor:
var ftpRequest = (FtpWebRequest) HttpWebRequest.Create("ftp://my.ftp.com");
Create
ist eigentlich eine statische Methode WebRequest
, sondern auf HttpWebRequest
stattdessen verwendet wird, weil es eine abgeleitete-Typ ist und Sie kann tun. Sie erwarten also, dass es sich um eine Webanforderung handelt, die generiert wird, oder? Aber es ist nicht, es generiert FtpWebRequest
, weil das in der URI angegeben ist.
Edit:
ich, dass im Allgemeinen darauf hin will, sind die Compiler-Warnungen gibt es für einen Grund, das heißt Weise diese auch vorhanden ist. Solange keine Überlast von SetZIndex
in der Klasse Canvas
erzeugt wird, ist der Anruf sicher. Aber wie @SriramSakthivel in den Kommentaren darauf hinweist, dass, wenn eine Erweiterungsmethode oder eine statische Methode der Klasse Canvas
hinzugefügt wird (unter Verwendung des Modifikators new
), von Ihnen oder von jemand anderem, wird das gewünschte Ergebnis und Sie nicht mehr ausgegeben muss mir dessen bewusst sein.
Bei einer Schätzung ist 'Canvas' ein Subtyp eines anderen Typs und' SetZIndex' wird von letzterem definiert; nicht von 'Canvas'. –