J'espère que ce genre d'énigme est ontopique dans la programmation des puzzles et du code golf.
Donnez un exemple d'une situation où la méthode C # ci-dessous renvoiefalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
Règles: Les lignes de code ci-dessus ne doivent en aucun cas être modifiées, mais vous mettriez le code dans une application pour que le «projet» se compile et que la méthode soit appelée. Lors de son exécution, la méthode doit revenir false
. La solution que j'ai en tête, n'émet pas son propre IL au moment de l'exécution ou des choses "exotiques" similaires, c'est un appel de méthode d'instance ordinaire.
Animal giraffe = new Giraffe(); giraffe.Test();
et la classe parente Animal
a une Test()
méthode qui retourne false
. Cela triche un peu car il appelle la méthode de la classe parent plutôt que Giraffe
la sienne. Mais le site d'appel se ressemble.
false
, donc je ne dirais pas que c'était une solution complète. Mais intéressant quand même. Ma solution n'a pas de méthode de masquage (indice), mais comme je l'ai dit, d'autres solutions pourraient aussi être intéressantes.
Giraffe giraffe = new Giraffe(); giraffe.Test();
doit se produire d'une manière ou d'une autre pour que la ligne de cette méthode soit, en fait, exécutée?