以下是一道面试题。我想出了一个解决方案,但不确定它为什么有效。
问题:
在不修改Sparta
类的情况下,编写一些代码使MakeItReturnFalse
返回false
。
public class Sparta : Place
{
public bool MakeItReturnFalse()
{
return this is Sparta;
}
}
我的解决方案:(剧透)
public class Place
{
public interface Sparta { }
}
但为什么MakeItReturnFalse()
方法中的Sparta
指的是{namespace}.Place.Sparta
而不是{namespace}.Sparta
呢?