问题标签 [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.

0 投票
7 回答
4370 浏览

c# - .NET 的高效、不可变、可扩展集合

在我看来,.NET 极度缺乏安全、不可变的集合类型,尤其是 BCL,但我也没有看到在外部完成太多工作。有没有人有任何指向(最好)生产质量、快速、不可变的 .NET 集合库的指针。快速列表类型是必不可少的。我还没有准备好切换到 F#。

*编辑:搜索者请注意,这很快就会被纳入 BCL: .NET 不可变集合

0 投票
6 回答
14891 浏览

.net - 为什么没有排序列表在.NET 中?

为什么只有一个SortedList<TKey, TValue>看起来更像字典的,但SortedList<T>实际上不是一个总是排序的列表?

根据有关 SortedList 的 MSDN 文档,它实际上在内部实现为KeyValuePair<TKey, TValue>始终按键排序的动态大小的数组。同一个类作为任何类型的列表不会更有用T吗?那不是更适合这个名字吗?

0 投票
23 回答
287512 浏览

c# - 为什么没有像 String.Empty 这样的 Char.Empty?

是否有一个原因?我问是因为如果您需要使用大量空字符,那么您会遇到与使用大量空字符串时相同的情况。

编辑:这种用法的原因是这样的:

所以从 myString 中删除所有 'c' 的实例。

0 投票
9 回答
367 浏览

c# - 如果不使用 Object 类型,.NET 是否也能正常工作?

我问这个是因为似乎使用 Object 似乎是解决某些问题的一种简单方法,例如“我没有特定类型,所以使用 Object”等。

这让我感到好奇的原因还在于,我的一位同事告诉我,如果 .NET 是一个真正的面向对象平台,那么它就不必拥有像 Object 这样的所有类型。

因此,如果 .NET 没有 Object 类型,那么解决出现的问题以使其功能相同的替代方法是什么?

还需要注意的是,这并不是要抨击 .NET,因为我每天都在工作中使用它。只是想了解更多。

编辑:我记得的另一个注意事项是因为 Object 类型存在,它的影响会在整个 .NET 中产生涟漪。像 IEnumerable 一样存在,但也存在 IEnumerable<T>。在许多情况下,您必须同时实现事物的通用和非通用版本等。

0 投票
5 回答
2371 浏览

c# - 使用隐式/显式转换而不是构造函数的原因是什么?

一个例子是:

为什么不?:

使用隐式/显式转换而不是构造函数背后的想法是什么?方便?

有这方面的指导方针吗?

0 投票
3 回答
686 浏览

c# - 为什么我们在 Encoder.GetBytes 方法中使用 flush 参数

链接解释了 Encoder.GetBytes 方法,并且还有一个名为 flush 的 bool 参数也进行了解释。冲洗的解释是:

如果此编码器可以在转换结束时刷新其状态,则为 true;否则为假。为确保正确终止编码字节块序列,对 GetBytes 的最后一次调用可以为刷新指定 true 值。

但我不明白flush是做什么的,也许我喝醉了或者什么的:)。你能详细解释一下吗?

0 投票
3 回答
3136 浏览

.net - Directory.GetParent 中的错误?

我被该方法的一个非常奇怪的行为击中了脸System.IO.Directory.GetParent

我会认为这是一个错误,但这种方法从 1.0 开始就存在,所以我想它现在已经被检测到了。另一方面,如果它是按照设计的,我想不出对这种设计的合理解释……

你怎么看 ?这是一个错误吗?如果不是,你如何解释这种行为?

0 投票
5 回答
6926 浏览

.net - 为什么 TimeSpan.FromSeconds(double) 舍入到毫秒?

TimeSpan.FromSeconds需要一个双精度值,并且可以表示低至 100 纳秒的值,但是这种方法莫名其妙地将时间四舍五入到整毫秒。

鉴于我刚刚花了半个小时来查明这种(记录在案的!)行为,知道为什么会出现这种情况会更容易忍受浪费的时间。

谁能提出为什么实施这种看似适得其反的行为?

0 投票
3 回答
314 浏览

c# - Nullable<> 类型是 BCL、CLR 还是两者都实现?

前段时间我认为 Nullable<> 值类型是类,封装了值类型和 HasValue 的 bool。使用一些隐式的 null 强制转换操作符,刚刚在 BCL 中实现。

但是作为一个结构,如何实现呢?Nullable<> 结构对于 CLR 来说是“特殊的”吗?

0 投票
2 回答
7379 浏览

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 常见问题页面上它指出:

  1. 问:Java 技术是免费的吗?我在哪里可以获得有关许可的信息?答:Java SE 在 Sun 二进制代码许可证 (BCL) 下继续可用,在通用计算中使用它不需要额外费用。Java 技术支持和 EOL 路线图提供了更多信息。Java for Business 二进制文件根据单独的许可条款提供。下面提供了 Java SE 和 Java for Business 许可条款的摘要

-甲骨文

如果他们可以更改许可证,是否会追溯影响所有已发布的源代码?