标签: base-class-library

什么是C++ std :: pair的C#模拟?

我很感兴趣:C#std::pair在C++中的模拟是什么?我找到了System.Web.UI.Pair课程,但我更喜欢基于模板的课程.

谢谢!

.net c# base-class-library data-structures std-pair

277
推荐指数
7
解决办法
20万
查看次数

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

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

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

myString.Replace ('c', '')
Run Code Online (Sandbox Code Playgroud)

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

.net c# string char base-class-library

244
推荐指数
11
解决办法
22万
查看次数

如何在C#中从单个完整路径创建多个目录?

如果你有一个完整的路径:"C:\dir0\dir1\dir2\dir3\dir4\"你如何最好地实现它,以便所有目录都存在?

在BCL中有这种方法吗?如果没有,那么最优雅的方式是什么?

.net c# base-class-library

154
推荐指数
1
解决办法
5万
查看次数

Microsoft如何创建具有循环引用的程序集?

在.NET BCL中有以下循环引用:

  • System.dllSystem.Xml.dll
  • System.dllSystem.Configuration.dll
  • System.Xml.dllSystem.Configuration.dll

这是.NET Reflector的截图,显示了我的意思:

在此输入图像描述

微软如何创建这些程序集对我来说是一个谜.是否需要特殊的编译过程才允许这样做?我想象这里有一些有趣的东西.

.net assemblies circular-reference base-class-library

105
推荐指数
5
解决办法
1万
查看次数

为什么BCL Collections使用struct枚举器而不是类?

我们都知道可变结构一般是邪恶的.我也非常确定因为IEnumerable<T>.GetEnumerator()返回类型IEnumerator<T>,结构会立即被装入引用类型,比它们只是引用类型的开销要多得多.

那么为什么在BCL泛型集合中,所有枚举器都是可变结构?当然必须有一个很好的理由.我唯一想到的就是可以轻松复制结构,从而在任意点保留枚举器状态.但是Copy()IEnumerator接口上添加一个方法本来就不那么麻烦了,所以我不认为这本身就是一个逻辑上的理由.

即使我不同意设计决定,我也希望能够理解它背后的原因.

.net c# ienumerator base-class-library

53
推荐指数
2
解决办法
4853
查看次数

为什么在添加Microsoft.Bcl.Async包后将"bindingRedirect"添加到app.config文件中?

我想知道为什么nuget app.config在安装以下代码后将以下代码添加到我的应用程序文件中Microsoft.Bcl.Async:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

如果我从配置中删除此XML元素,该应用程序将无法正常工作.

据我所知,我们可以使用它bindingRedirect来加载一个新版本或旧版本的程序集,以防我们在编译EXE时使用的版本消失.
但是我正在使用的版本2.5.19.0,为什么我需要重定向呢?

我的DLL的版本

我为什么需要这个bindingRedirect

.net c# app-config base-class-library

47
推荐指数
2
解决办法
2万
查看次数

为什么词典"没有订购"?

我已经在这里回答了许多问题.但究竟是什么意思呢?

var test = new Dictionary<int, string>();
test.Add(0, "zero");
test.Add(1, "one");
test.Add(2, "two");
test.Add(3, "three");

Assert(test.ElementAt(2).Value == "two");
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎按预期工作.那么字典被认为是无序的?在什么情况下上面的代码会失败?

.net c# dictionary operator-precedence base-class-library

45
推荐指数
4
解决办法
9948
查看次数

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

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

List<T> 不是只读的......

.net base-class-library .net-4.5

37
推荐指数
5
解决办法
8709
查看次数

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

我对包装感到困惑HttpClient.之前它被分发为Microsoft.Http.NetNuGet包的一部分,而System.Net.Http被认为是遗留的.现在看起来恰恰相反:System.Net.Http所有平台Microsoft.Net.Http都有一个全新的软件包,并且暂时没有更新,据微软开发团队的人员称,将被弃用.

那么问题:

  • 我们可以Microsoft.Net.Http用(最新的)替换NuGet包的依赖项System.Net.Http吗?
  • 遗留的.NET 4.0平台是否仍然使用Microsoft.Net.Http?那么非Windows平台(iOS,Android)呢?新的System.Net.Http支持他们,但我记得Microsoft.Net.Http我只好另外安装Microsoft.Bcl.Build,并Microsoft.Bcl以获得跨平台的东西的工作.System.Net.Http不依赖于他们.可以跳过Bcl包吗?
  • System.Net.Http缺少一些Http扩展方法,SupportsPreAuthenticate并试图调用这些方法导致运行时错误(缺少方法).我们该如何应对?

c# httpclient base-class-library nuget

36
推荐指数
1
解决办法
3798
查看次数

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

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

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

任何人都可以建议为什么这种看似适得其反的行为被实施了?

TimeSpan.FromSeconds(0.12345678).TotalSeconds
    // 0.123
TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond * 0.12345678)).TotalSeconds
    // 0.1234567
Run Code Online (Sandbox Code Playgroud)

.net timespan base-class-library

34
推荐指数
3
解决办法
5878
查看次数