Я сподіваюсь, що така "загадка" є актуальною у програмуванні головоломки та кодовому гольфі.
Наведіть приклад ситуації, коли метод C # нижче повертаєтьсяfalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
Правила: рядки коду, наведені вище, ні в якому разі не слід змінювати, але ви введете код у додаток, щоб "проект" компілювався і метод викликався. При запуску метод повинен повернутися false
. Я маю на увазі рішення, яке не випромінює власну ІЛ під час виконання або подібні "екзотичні" речі, це звичайний виклик методу екземпляра.
Animal giraffe = new Giraffe(); giraffe.Test();
і батьківський клас Animal
має Test()
метод, який повертає false
. Це трохи обман, як це називає метод батьківського класу, а не Giraffe
's. Але сайт дзвінків виглядає так само.
false
, тому я б не сказав, що це повне рішення. Але цікаво все ж. У моєму рішенні немає жодного методу приховування (підказки), але, як я вже сказав, інші рішення теж можуть бути цікавими.
Giraffe giraffe = new Giraffe(); giraffe.Test();
повинно відбуватися якось так, щоб рядок у цьому методі був насправді виконаний?