问题标签 [base-class-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET 的高效、不可变、可扩展集合
在我看来,.NET 极度缺乏安全、不可变的集合类型,尤其是 BCL,但我也没有看到在外部完成太多工作。有没有人有任何指向(最好)生产质量、快速、不可变的 .NET 集合库的指针。快速列表类型是必不可少的。我还没有准备好切换到 F#。
*编辑:搜索者请注意,这很快就会被纳入 BCL: .NET 不可变集合
.net - 为什么没有排序列表在.NET 中?
为什么只有一个SortedList<TKey, TValue>
看起来更像字典的,但SortedList<T>
实际上不是一个总是排序的列表?
根据有关 SortedList 的 MSDN 文档,它实际上在内部实现为KeyValuePair<TKey, TValue>
始终按键排序的动态大小的数组。同一个类作为任何类型的列表不会更有用T
吗?那不是更适合这个名字吗?
c# - 为什么没有像 String.Empty 这样的 Char.Empty?
是否有一个原因?我问是因为如果您需要使用大量空字符,那么您会遇到与使用大量空字符串时相同的情况。
编辑:这种用法的原因是这样的:
所以从 myString 中删除所有 'c' 的实例。
c# - 如果不使用 Object 类型,.NET 是否也能正常工作?
我问这个是因为似乎使用 Object 似乎是解决某些问题的一种简单方法,例如“我没有特定类型,所以使用 Object”等。
这让我感到好奇的原因还在于,我的一位同事告诉我,如果 .NET 是一个真正的面向对象平台,那么它就不必拥有像 Object 这样的所有类型。
因此,如果 .NET 没有 Object 类型,那么解决出现的问题以使其功能相同的替代方法是什么?
还需要注意的是,这并不是要抨击 .NET,因为我每天都在工作中使用它。只是想了解更多。
编辑:我记得的另一个注意事项是因为 Object 类型存在,它的影响会在整个 .NET 中产生涟漪。像 IEnumerable 一样存在,但也存在 IEnumerable<T>。在许多情况下,您必须同时实现事物的通用和非通用版本等。
c# - 使用隐式/显式转换而不是构造函数的原因是什么?
一个例子是:
为什么不?:
使用隐式/显式转换而不是构造函数背后的想法是什么?方便?
有这方面的指导方针吗?
c# - 为什么我们在 Encoder.GetBytes 方法中使用 flush 参数
此链接解释了 Encoder.GetBytes 方法,并且还有一个名为 flush 的 bool 参数也进行了解释。冲洗的解释是:
如果此编码器可以在转换结束时刷新其状态,则为 true;否则为假。为确保正确终止编码字节块序列,对 GetBytes 的最后一次调用可以为刷新指定 true 值。
但我不明白flush是做什么的,也许我喝醉了或者什么的:)。你能详细解释一下吗?
.net - Directory.GetParent 中的错误?
我被该方法的一个非常奇怪的行为击中了脸System.IO.Directory.GetParent
:
我会认为这是一个错误,但这种方法从 1.0 开始就存在,所以我想它现在已经被检测到了。另一方面,如果它是按照设计的,我想不出对这种设计的合理解释……
你怎么看 ?这是一个错误吗?如果不是,你如何解释这种行为?
.net - 为什么 TimeSpan.FromSeconds(double) 舍入到毫秒?
TimeSpan.FromSeconds
需要一个双精度值,并且可以表示低至 100 纳秒的值,但是这种方法莫名其妙地将时间四舍五入到整毫秒。
鉴于我刚刚花了半个小时来查明这种(记录在案的!)行为,知道为什么会出现这种情况会更容易忍受浪费的时间。
谁能提出为什么实施这种看似适得其反的行为?
c# - Nullable<> 类型是 BCL、CLR 还是两者都实现?
前段时间我认为 Nullable<> 值类型是类,封装了值类型和 HasValue 的 bool。使用一些隐式的 null 强制转换操作符,刚刚在 BCL 中实现。
但是作为一个结构,如何实现呢?Nullable<> 结构对于 CLR 来说是“特殊的”吗?
java - Java SE 还是 GPL 吗?
Java SE 仍然是开源的吗?Oracle 在专用于 GPL 之后可以更改许可吗?
但是,在 Oracle Java FAQ 上,它声明它是Binary Code License。
“Sun 开始在 GPL 下发布 Java”
“Sun 的 Java SE (JDK) 和 Java ME 实现采用 GPL v2 许可证,并将此许可证添加到 Sun 的 Java EE 实现中。”
——詹姆斯·高斯林
然而在 Java 常见问题页面上它指出:
- 问:Java 技术是免费的吗?我在哪里可以获得有关许可的信息?答:Java SE 在 Sun 二进制代码许可证 (BCL) 下继续可用,在通用计算中使用它不需要额外费用。Java 技术支持和 EOL 路线图提供了更多信息。Java for Business 二进制文件根据单独的许可条款提供。下面提供了 Java SE 和 Java for Business 许可条款的摘要
-甲骨文
如果他们可以更改许可证,是否会追溯影响所有已发布的源代码?