【发布时间】:2012-06-30 10:26:37
【问题描述】:
如果我有:
void Foo(dynamic X) {
}
然后:
Foo(12);
12 会被装箱吗?我无法想象会这样,我只是想问问专家。
【问题讨论】:
-
为什么你认为它不会?如果不是作为对象,您如何想象运行时会存储 unknown compile-time type 的值? (这不是一个修辞问题;我有兴趣了解为什么人们的直觉会导致他们相信关于语言特征的错误信息,以便我们可以在未来尝试设计更好的特征。)
-
你在 C# 团队吗?对我来说,这不是一个合理的假设。由于 C# 中添加了所有令人惊叹的酷特性,有时很容易忘记 C# 仍然是一种静态类型语言,所以它怎么可能不是在幕后成为对象。如果您在 C# 团队中,那么感谢您提供的 lambda 表达式。有史以来最好的语言功能。
-
@Adam:不客气。我非常喜欢实现 lambda 表达式,很高兴您喜欢使用它们!
-
另请参阅stackoverflow.com/questions/4892704 以了解有关此主题的更多思考。 (即动态和对象的等价性。)
-
我同意 lambda 表达式非常酷。我用它所有的时间。正是这些东西使 C# 成为我最喜欢的语言。那和.NET。