【发布时间】:2017-10-22 14:07:18
【问题描述】:
以下是面试题。我想出了一个解决方案,但我不确定它为什么有效。
问题:
在不修改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?
【问题讨论】:
-
能否请您在解决方案中添加剧透警报或其他内容?我很失望,我没有机会自己解决它。问题确实很神奇。
-
我最初包含了剧透标签,但是在这篇文章的整个生命周期中,它被社区多次编辑掉。对此感到抱歉。
-
我不喜欢这篇文章的标题;它更适合 codegolf.SE。我们可以将其更改为实际描述问题的内容吗?
-
可爱的拼图。可怕的面试问题,但可爱的谜题。既然您知道它的工作原理和原因,您应该试试这个更难的版本:stackoverflow.com/q/41319962/88656
标签: c# inheritance types namespaces