草庐IT

STL容器之queue

全部标签

c# - 图形容器如何工作?

我正在尝试弄清楚gdi+图形容器如何与不同的图形单元一起工作。看看下面的代码。它会编译,您可以将其粘贴到一个全新的表单中。voidForm2_Paint(objectsender,PaintEventArgse){vargfx=e.Graphics;System.Diagnostics.Debug.WriteLine("DpiX={0},DpiY={1}",gfx.DpiX,gfx.DpiY);gfx.PageUnit=GraphicsUnit.Inch;varpen=newPen(Color.Black,0.01f);//Createoutercontainer,2inchesins

c# - 为什么 Stack<T> 和 Queue<T> 没有 Capacity 属性而 List<T> 有?

Capacity属性在List中是否比在其他集合(如Stack和Queue)中更有用?还是有其他方法可以获取Stack或Queue的容量? 最佳答案 我认为List具有Capacity属性而Stack和Queue没有的原因是这些类型的正常用法是不同的。对于List,用大量值填充它是相当常见的,甚至在它创建一段时间后也是如此。提供Capacity属性(和构造函数参数)有助于减少将大量项目添加到列表时将完成的重新分配的数量。Stack和Queue另一方面,它们不会立即添加大量项目已创建。据推测,Microsoft认为不值得添加Capac

使用 Docker 将容器目录挂载到主机上

一、基本介绍这里我们主要介绍Docker里的一个命令,叫做--mount,其本质上来说和--volume命令并没有太大区别,因为这两个命令都是用来给容器提供一个挂载目录。唯一的区别便是,容器的挂载类型不同,那么效果也会有所不同。容器的挂载类型:bind:将宿主机的指定目录挂载到容器的指定目录,以覆盖的形式挂载(这也就意味着,容器指定目录下的内容也会随着消失)volume:在宿主机的Docker存储目录下创建一个目录,并挂载到容器的指定目录(并不会覆盖容器指定目录下的内容)在有些时候,由于容器内的目录有着特殊作用,并不能以覆盖的形式进行挂载。但又想挂载到宿主机上,这时我们便可以使用volume类

c# - 如何使用 WebAPI、WCF、SignalR 和后台任务在 MVC Web 应用程序中配置简单的注入(inject)器容器和生活方式

简单的注入(inject)器文档提供了关于如何为WebRequest、WebAPI、WCF等设置容器的很好的示例,但这些示例一次只针对一种技术/生活方式。我们的Web应用程序同时使用了其中的大部分!我不清楚如何配置容器以适应多种生活方式。假设我有一个带有WebAPI的MVC项目。我有以下对象:MyDbContext:我的实体代码优先数据库上下文由MyDataProvider实现的IMyDataProvider:包含查询逻辑并使用MyDbContextMyController:使用IMyDataProvider的MVCControllerMyApiController:使用IMyData

c# - 从仅给定 Type 实例的 MEF 容器中获取导出

我有一个场景,我必须从我的CompositionContainer实例中导出,但我只有一个Type可以使用;我在编译时不知道类型,因此我无法以正常的通用方式检索导出的对象。通常你会这样做:_container.GetExportedObject();但就我而言,我有这个:TypesomeType=...;_container.HowDoIGetTheExport(someType);有什么想法吗? 最佳答案 找到答案:varexport=_container.GetExports(someType,null,null).FirstO

c# - 在 Silverlight 和 MVVM 的组合根中保持 DI 容器的使用

我不太清楚如何设计,所以我在Silverlight+MVVM应用程序的组合根中保留对DI容器的引用。我有以下简单的使用场景:有一个主视图(可能是一个项目列表)和一个为单个项目打开编辑View的操作。因此主视图必须在用户执行操作(例如单击某个按钮)时创建并显示编辑View。为此,我有以下代码:publicinterfaceIView{IViewModelViewModel{get;set;}}然后,对于我需要能够创建的每个View,我都有一个抽象工厂,就像这样publicinterfaceISomeViewFactory{IViewCreateView();}此工厂随后被声明为“父”Vi

c# - 奇怪的 Queue<T>.Enqueue(T item) 代码

在使用ILSpy进行反射时,我在Queue.Enqueue(Titem)中找到了这行代码-方法:if(this._size==this._array.Length){intnum=(int)((long)this._array.Length*200L/100L);if(num我只是想知道为什么有人会这样做?我认为这是某种整数溢出检查,但为什么要先乘以200L然后除以100L?这可能是早期编译器的问题吗? 最佳答案 通常先乘以再除以100是百分比计算-也许在原始代码中有一些constXxxPercentage=200或类似的东西。编译

c# - 是否可以从 Autofac 容器构建器中删除现有注册?

类似的东西:builder.RegisterType().As();builder.RegisterType().As();builder.DeRegisterType().As()varcontainer=builder.Build();vartypes=container.Resolve>();Assert.IsTrue(types.Count==1);Assert.IsTrue(types[0].GetType==typeof(MyType2));场景:我经历了一堆程序集,并且在我进行过程中注册了类型,但我想确保我只有一个给定类型的实现。我需要在创建容器之前执行此操作。我可以自己

c# - 依赖注入(inject)容器?它有什么作用?

我一直在阅读有关DI的资料,它似乎是一个足够简单的概念。我没有得到的是容器。假设我想创建自己的容器。使用了像“检测”这样的动词,但我不明白容器是如何“检测”到一个新的依赖对象已创建并知道注入(inject)它的依赖项的。在我看来,容器就像是一家美化的工厂。任何人都可以解释容器的实际实现方式,或者可以为我指出一种资源吗?谢谢! 最佳答案 这取自WindsordocumentationInversionofControlInversionofControlisaprincipleusedbyframeworksasawaytoallow

C#:通常首选哪种类型的数据容器?

创建一个简单的数据容器类时,应该是什么?类还是结构?可变的还是不可变的?带或不带非空构造函数?上面的例子:structMutableStruct{publicstringText{get;set;}publicintNumber{get;set;}}structImmutableStruct{publicstringText{get;privateset;}publicintNumber{get;privateset;}publicImmutableStruct(stringtext,intnumber):this(){Text=text;Number=number;}}structM