Tôi hy vọng loại "câu đố" này không có ý nghĩa trong Lập trình Câu đố & Code Golf.
Cho một ví dụ về tình huống trong đó phương thức C # bên dưới trả vềfalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
Quy tắc: Các dòng mã ở trên không được thay đổi theo bất kỳ cách nào, nhưng bạn sẽ đặt mã vào một ứng dụng để "dự án" biên dịch và phương thức được gọi. Khi chạy, phương thức phải trả về false
. Giải pháp tôi có trong đầu, không phát ra IL của chính nó vào thời gian chạy hoặc những thứ "kỳ lạ" tương tự, đó là một cuộc gọi phương thức thông thường.
Animal giraffe = new Giraffe(); giraffe.Test();
và lớp cha Animal
có một Test()
phương thức trả về false
. Đó là gian lận một chút khi nó gọi phương thức lớp cha chứ không phải Giraffe
là. Nhưng trang web cuộc gọi trông giống nhau.
false
, vì vậy tôi sẽ không nói đó là một giải pháp đầy đủ. Nhưng vẫn thú vị. Giải pháp của tôi không có bất kỳ phương pháp ẩn (gợi ý) nào, nhưng như tôi đã nói, các giải pháp khác cũng có thể thú vị.
Giraffe giraffe = new Giraffe(); giraffe.Test();
phải xảy ra bằng cách nào đó để dòng trong phương thức đó thực tế được thực thi?