Ich hoffe, diese Art von "Rätsel" ist in Programming Puzzles & Code Golf nicht mehr wegzudenken.
Geben Sie ein Beispiel für eine Situation, in der die folgende C # -Methode zurückgibtfalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
Regeln: Die obigen Codezeilen dürfen in keiner Weise geändert werden, aber Sie würden den Code in eine Anwendung einfügen, sodass das "Projekt" kompiliert und die Methode aufgerufen wird. Beim Ausführen muss die Methode zurückgegeben werden false
. Die Lösung, die ich vor Augen habe, gibt zur Laufzeit keine eigene IL oder ähnliche "exotische" Dinge aus, es ist ein gewöhnlicher Instanzmethodenaufruf.
Animal giraffe = new Giraffe(); giraffe.Test();
und die Elternklasse Animal
hat eine Test()
Methode, die zurückgibt false
. Das ist ein bisschen schummeln, da es eher die übergeordnete Klassenmethode als Giraffe
's aufruft . Aber die Anrufseite sieht genauso aus.
false
, also würde ich nicht sagen, dass es eine vollständige Lösung ist. Aber trotzdem interessant. Meine Lösung hat keine versteckte Methode (Hinweis), aber wie gesagt, andere Lösungen könnten auch interessant sein.
Giraffe giraffe = new Giraffe(); giraffe.Test();
muss , damit die Zeile in dieser Methode tatsächlich ausgeführt wird?