base-class-library相关内容

我可以使用大括号初始化BCL不可变集合吗?

在过去,我们可以方便地使用大括号初始化可变集合,如下例所示: var myDictionary = new Dictionary {{"hello", 0m}, {"world", 1m}}; 是否有类似的语法可用于BCL不可变集合?我知道这仍然是一个预发行版,但可能有推荐的语法,或者至少这个问题将作为反馈来实现这些方便的初始化器。 同时,我找到的 ..

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

这是有原因的吗?我问是因为如果您需要使用大量空字符,那么您会遇到与使用大量空字符串时相同的情况. 编辑:这种用法的原因是这样的: myString.Replace ('c', '') 所以从 myString 中删除所有 'c' 的实例. 解决方案 没有空字符这样的东西.您可以获得的最接近的是 '\0',即 Unicode“空"字符.鉴于您可以将它嵌入到字符串文字中或非常容易地单 ..
发布时间:2022-01-12 20:02:06 C#/.NET

从位数组转换为字节

我有一个 BitArray 长度为 8,我需要一个函数将其转换为 byte.怎么做? 具体来说,我需要一个正确的ConvertToByte函数: BitArray bit = new BitArray(new bool[]{假的,假的,假的,假的,假的,假,假,假,真});//如何写ConvertToByte字节 myByte = ConvertToByte(bit);var recove ..
发布时间:2022-01-09 19:08:58 C#/.NET

为什么字典“未排序"?

我已阅读本文以回答此处的许多问题.但这究竟是什么意思? var test = new Dictionary();test.Add(0, "零");test.Add(1, "一个");test.Add(2, "二");test.Add(3, "三");断言(test.ElementAt(2).Value == "二"); 上面的代码似乎按预期工作.那么字典以何种方式被认为是无序的呢?上面的代码在 ..
发布时间:2021-12-10 15:51:56 C#/.NET

为什么 List<T>实现 IReadOnlyList;在 .NET 4.5 中?

为什么List要在.NET 4.5中实现IReadOnlyList? List 不是只读的... 解决方案 因为 List 实现了所有必要的方法/属性/等.(然后是一些)IReadOnlyList.接口是一种契约,上面写着“我至少可以做这些事情." IReadOnlyList 的文档说它代表一个只读的元素集合. 没错.该接口中没有mutator方法.这就是只读的意思,对吧 ..
发布时间:2021-11-26 11:05:35 C#/.NET

Linq 的 Enumerable.Count 方法检查 ICollection<>但不适用于 IReadOnlyCollection<>

背景: Linq-To-Objects 具有扩展 方法 Count()(不带谓词的重载).当然有时当一个方法只需要一个IEnumerable(做Linq)时,我们真的会传递一个“更丰富"的对象给它,比如一个ICollection.在那种情况下,实际上遍历整个集合(即获取枚举器并“移动下一个"一大堆)来确定计数是很浪费的,因为有一个 property ICollection.Count 用于此 ..
发布时间:2021-11-24 10:15:44 C#/.NET

.NET 4.5 CustomReflectionContext:它有什么用?

.NET Framework 4.5 开发者预览版的新增功能 提及 能够自定义反射上下文以覆盖默认值通过 CustomReflectionContext 的反射行为 类. ReflectionContext 的目的是什么?MSDN 在这个主题上不是很清楚. 解决方案 在过去的 .NET 中,在希望能够通过反射自动化某些功能和能够自定义它们之间一直存在紧张关系.例如,以 Visu ..
发布时间:2021-11-24 09:50:01 C#/.NET

为什么 List<T>实现 IReadOnlyList;在 .NET 4.5 中?

为什么List要在.NET 4.5中实现IReadOnlyList? List 不是只读的... 解决方案 因为 List 实现了所有必要的方法/属性/等.(然后是一些)IReadOnlyList.接口是一种契约,上面写着“我至少可以做这些事情." IReadOnlyList 的文档说它代表一个只读的元素集合. 没错.该接口中没有mutator方法.这就是只读的意思,对吧 ..
发布时间:2021-11-24 09:03:12 C#/.NET

是否需要 bindingRedirect .config 文件或应用程序中的所有程序集?

使用 NuGet 为一个解决方案安装 Microsoft.Bcl.Async 包,该解决方案有多个 dll 和一个 exe,它使用所有其他 dll,NuGet 会自动为每个文件创建一个 .config 文件(或添加到现有文件)将 Bcl 包添加到的项目. 实际上,我最终得到了 > 20 个包含相同重定向的配置文件.我了解重定向 是必需的,但是鉴于所有程序集都由单个应用程序加载(如果重要的话, ..
发布时间:2021-11-15 22:42:23 C#/.NET

Directory.GetFiles使用SearchPattern返回意外结果

我正在处理一个批处理程序,该程序处理大量文件(超过5万个文件),并且我遇到了 Directory.GetFiles 方法的怪异行为. 在此过程中,我将移动与以下搜索模式"* .pdf"匹配的文件,并通过 Directory.GetFiles 方法获得文件:看到有时我移动了.pdfa文件,我感到非常惊讶. 所以我检查了 您对此行为有任何解释吗? 解决方案 这是GetFile ..
发布时间:2021-04-01 20:14:15 C#/.NET

System.Net.Http与Microsoft.Net.Http的当前状态

我对HttpClient的包装感到困惑.早些时候它作为Microsoft.Http.Net NuGet软件包的一部分分发,而System.Net.Http被认为是旧版.看起来现在相反了:针对所有平台都有一个新的System.Net.Http软件包,并且Microsoft.Net.Http已有一段时间没有更新,并且据Microsoft开发团队的人员说,将不推荐使用. 然后的问题: 我们可 ..
发布时间:2020-11-25 01:14:33 C#/.NET

F#结构元组与BCL元组类型

在F#中,您可以按以下方式定义first函数: let first (x, y) = x 您可以这样称呼它: first (1, 2) 您还可以根据BCL Tuple类型定义相同的功能: let first (t:Tuple) = t.Item1 但是,您不能使用以前的语法来调用它,否则会出现以下错误: error FS0001: The t ..
发布时间:2020-11-03 00:37:58 其他开发

可为空类型是BCL,CLR还是两者都实现?

前段时间,我认为Nullable 值类型是类,封装了值类型和对HasValue的定义。 但是作为一个结构,如何实现呢? Nullable结构对于CLR是“特殊”的吗? 解决方案 Nullable 被定义为普通结构,但CLR中有特殊的钩子可以将 [mscorlib] System.Nullable`1 的实例装箱/拆箱为空,具体取决于 HasValue 属性。在此处 有更 ..
发布时间:2020-10-03 01:43:41 C#/.NET

什么时候应该使用BitVector32?

我正在做一个项目,在某个时刻我需要显示一个月的时间,这些天仍然可用.有一个功能可以计算哪些日期可用.我的同事说:“哦,我们知道,您应该返回 BitVector32 .这是处理布尔列表时最有效的方法."我会使用 List 或类似的东西. BitVector32 在您实际使用位时,对我来说似乎是一些低级的东西. 所以,问题是.您是否应该使用 BitVector32 每当需要少于32个 ..
发布时间:2020-09-22 04:00:14 C#/.NET