【发布时间】:2016-04-07 15:58:55
【问题描述】:
我最近在学习 C#,具有很强的 C++ 背景,鉴于我对 C++ 的理解和经验,我对 C# 有一些不太了解的地方。
在 C++ 中,人们确实非常关心一致性,否则就不可能使用模板元编程来编写通用代码。然而,在 C# 中,人们似乎不太关心一致性。例如,虽然数组类型具有Length 属性,但List<T> 使用Count。虽然数组类型的IndexOf、LastIndexOf 等都是静态方法,但它们对应的List<T> 却不是。这给我的印象是,C# 并没有统一,实际上是在努力变得不统一。这对我来说没有意义。由于 C# 不支持模板元编程,因此一致性不像 C++ 中那么重要。但是,统一在许多其他方面仍然是有益的。例如,人类更容易学习和掌握。当事情高度统一时,你可以掌握一个,然后你就掌握了这一切。请注意,我不是 C++ 狂热者,也不是顽固分子。我只是不太明白。
【问题讨论】:
-
这正是该语言的开发人员决定做的事情。
-
@gunr2171 那么,这些决定背后的动机和理由是什么?
-
不知道。问微软。这里的社区可以做出一些有根据的猜测,但只有开发人员才能确定。
-
我投票决定将此问题作为题外话结束,因为这是一个关于语言设计决策的问题。只有开发者才能给出适当的回应。
-
我同意这个问题可能措辞不当,但核心问题是一个有效的问题,许多 .NET 世界的新手可能会问。我认为它不应该关闭。但话又说回来,为什么不呢?在 Stack Overflow 上,结束问题是我们所做的!耶哈