Я надеюсь, что эта "загадка" является онтопом в Программировании Пазлов и Code Golf.
Приведите пример ситуации, когда метод C # ниже возвращаетfalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
Правила: приведенные выше строки кода не должны быть изменены каким-либо образом, но вы должны поместить код в приложение, чтобы «проект» компилировался и вызывался метод. При запуске метод должен вернуться false
. Решение, которое я имею в виду, не генерирует свой собственный IL во время выполнения или подобные "экзотические" вещи, это обычный вызов метода экземпляра.
Animal giraffe = new Giraffe(); giraffe.Test();
и у родительского класса Animal
есть Test()
метод, который возвращает false
. Это немного обманывает, поскольку вызывает метод родительского класса, а не Giraffe
's'. Но сайт вызова выглядит так же.
false
, поэтому я бы не сказал, что это было полное решение. Но все же интересно. Мое решение не имеет метода скрытия (подсказка), но, как я уже сказал, другие решения также могут быть интересны.
Giraffe giraffe = new Giraffe(); giraffe.Test();
должно произойти как-то так, чтобы строка в этом методе фактически выполнялась?