【问题标题】:Crashing .NET Framework崩溃的 .NET 框架
【发布时间】:2012-01-02 10:52:07
【问题描述】:

在最近的一次 C# 开发职位面试中,我被要求提供一个可能导致 .NET Framework 崩溃的代码示例。我不知道,现在也不知道这个问题的答案。

有什么想法吗?

【问题讨论】:

  • 很差的面试题。
  • 你应该要求他们澄清
  • 又一个无用的面试题。我会说我不知道​​,因为我不会编写使 VM 崩溃的代码。
  • 你的意思是会抛出异常的代码(这非常容易),还是什么?
  • 我不知道答案,但是一个狡猾而诡计多端的人很有可能会设计一个让垃圾收集器生气的类。众所周知,“愤怒导致恐惧,恐惧导致仇恨,仇恨导致黑暗面”。从技术角度来说,这意味着框架崩溃。

标签: c# .net


【解决方案1】:

它们可能意味着抛出异常的代码;但是,这将是一个非常奇怪的问题。

如果不是,他们要求互操作。
您可能会因错误调用本机代码而导致 .Net 应用程序崩溃。

【讨论】:

  • 或者,简单的不安全代码和...(您的选择...包括)开始摆弄字符串内部并更改数据的前两个字节(指定字符串长度);试图访问地址小于 64K 的内存;非托管互操作;操作类型数据信息 (void *ptr = &(myObj.GetType()); *(ptr + 4) = myObj.GetHashCode(););等等等等
  • 我会接受这个答案。我确信他们不是在寻找一个简单的异常抛出答案,而是更可能是一个肮脏的本地调用。
【解决方案2】:

您不能使框架崩溃,您可以使使用该框架的应用程序崩溃。

一个很好的例子是在没有任何异常处理的情况下向应用程序添加无限递归方法。

【讨论】:

  • 事情是这样的:你可以使框架崩溃; MSFT 定期发布可靠性更新,本质上修补框架以减少这种情况发生的频率。这有点难(没有意义地这样做),但这并不是说这是不可能的。但基本上,面试问题表述不清且含糊不清。
  • @GGulati:同意,但崩溃的不是框架本身,而是应用程序,对吧。例如,如果您有 10 个使用该框架(不包括 asp.net)的应用程序正在运行,并且一个执行导致其框架实例崩溃的操作,则该应用程序会崩溃,而不是所有应用程序都会崩溃。我认为这实际上是一个语义问题。这是一个很糟糕的面试问题,问的人可能认为自己比实际聪明得多。
  • 我猜想,作为框架一部分的 CLR 也可能会崩溃
【解决方案3】:

我怀疑这是一个棘手的问题,他们正在寻找您说使用您自己的代码不可能使框架本身崩溃(即,以某种方式关闭所有正在运行的 .net 应用程序)。正如其他人所提到的,任何框架崩溃都是由框架本身的错误代码造成的,微软可能会很快解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多