ฉันหวังว่า "ปัญหาลับสมอง" แบบนี้เป็นเรื่องเกี่ยวกับการเขียนโปรแกรมปริศนาและโค้ดกอล์ฟ
ยกตัวอย่างสถานการณ์ที่เมธอด C # ด้านล่างส่งคืนfalse
:
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
กฎ: บรรทัดโค้ดข้างต้นจะต้องไม่เปลี่ยนแปลง แต่อย่างใด แต่คุณจะต้องใส่รหัสลงในแอปพลิเคชันเพื่อให้คอมไพล์ "project" และวิธีการนั้นถูกเรียก false
เมื่อเรียกใช้วิธีการที่จะต้องกลับ วิธีแก้ปัญหาที่ฉันมีอยู่ในใจไม่ปล่อย IL ของตัวเองในเวลาทำงานหรือสิ่งที่ "แปลกใหม่" ที่คล้ายกันมันเป็นวิธีการแบบปกติที่เรียก
Animal giraffe = new Giraffe(); giraffe.Test();
และระดับผู้ปกครองAnimal
มีวิธีการที่ผลตอบแทนTest()
false
ที่โกงบิตในขณะที่มันเรียกวิธีการเรียนผู้ปกครองมากกว่าGiraffe
's แต่ไซต์การโทรดูเหมือนกัน
false
ดังนั้นฉันจะไม่พูดว่ามันเป็นวิธีการแก้ปัญหาที่สมบูรณ์ แต่ก็ยังน่าสนใจ วิธีการแก้ปัญหาของฉันไม่ได้มีวิธีการซ่อน (คำแนะนำ) แต่อย่างที่ฉันพูดวิธีการอื่นอาจน่าสนใจ
Giraffe giraffe = new Giraffe(); giraffe.Test();
จะต้องเกิดขึ้นอย่างใดเพื่อให้สายในวิธีการที่เป็นจริงในการดำเนินการ?