Saya berharap "teka-teki" semacam ini ontopic di Programming Puzzles & Code Golf.
Berikan contoh situasi di mana metode C # di bawah ini kembalifalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
Aturan: Baris kode di atas tidak boleh diubah dengan cara apa pun, tetapi Anda akan memasukkan kode ke dalam aplikasi sehingga "proyek" dikompilasi dan metode dipanggil. Saat dijalankan, metode harus kembali false
. Solusi yang ada dalam pikiran saya, tidak memancarkan IL sendiri pada saat run-time atau hal-hal "eksotis" serupa, itu adalah panggilan metode contoh biasa.
Animal giraffe = new Giraffe(); giraffe.Test();
dan kelas induk Animal
memiliki Test()
metode yang mengembalikan false
. Itu sedikit curang karena memanggil metode kelas induk daripada metode Giraffe
. Tetapi situs panggilan terlihat sama.
false
, jadi saya tidak akan mengatakan itu adalah solusi lengkap. Tapi tetap menarik. Solusi saya tidak memiliki metode penyembunyian (petunjuk), tetapi seperti yang saya katakan, solusi lain juga bisa menarik.
Giraffe giraffe = new Giraffe(); giraffe.Test();
harus terjadi entah bagaimana sehingga garis dalam metode itu, pada kenyataannya, dieksekusi?