草庐IT

约束条件

全部标签

c# - 契约前置条件引起的IEnumerable多重枚举

我有一个IEnumerable参数,该参数必须是非空的。如果有像下面这样的先决条件,那么集合将在它期间被枚举。但是下次我引用它时它会再次被枚举,从而导致在Resharper中出现“PossiblemultipleenumerationofIEnumerable”的警告。voidProcessOrders(IEnumerableorderIds){Contract.Requires((orderIds!=null)&&orderIds.Any());//enumeratesthecollection//BAD:collectionenumeratedagainforeach(variin

c# - 单元测试、死锁和竞争条件

关于如何为可能容易出现死锁和竞争条件的代码编写可重复的单元测试有什么建议吗?现在我倾向于跳过单元测试并专注于压力测试。问题是您可以运行压力测试5次并看到五个不同的结果。编辑:我知道这可能只是一个梦想,但如果有一种方法可以控制单个线程并使它们一次执行一条指令,那么我可能会有所作为。 最佳答案 看看TypeMock赛车手(处于测试阶段)编辑:实际上是Alphahttp://www.typemock.com/Typemock_software_development_tools.html 关于

c# - Generics & Reflection - GenericArguments[0] 违反类型约束

我已经为这个问题绞尽脑汁了一段时间,本质上我是在尝试实现一个通用的存储库工厂,其名称如下:varresposFactory=newRepositoryFactory>();存储库工厂如下所示:publicclassRepositoryFactory:IRepositoryFactory{publicTGetRepository(GuidlistGuid,IEnumerablefieldMappings){AssemblycallingAssembly=Assembly.GetExecutingAssembly();Type[]typesInThisAssembly=callingAss

c# - 如何在不删除所有条件的情况下覆盖现有绑定(bind)?

我目前面临的Ninject挑战是当我使用Rebind()时它删除所有绑定(bind),即使是那些有条件的。让我在下面给你一个愚蠢的例子。基本上我在我的案例中发现的不良行为是,当调用Rebind时,它将删除条件WhenInjectedInto。绑定(bind)而不是仅仅覆盖非条件Bind.在契约(Contract)下方的示例中Contract.Assert(catisWild);在ctor中将在重新绑定(bind)后失败。有没有办法做我想做的事-能够保留已经注入(inject)的条件绑定(bind)并仅覆盖非条件绑定(bind)?P.S:实际上,我正在尝试使用DataContext范围做

c# - Microsoft Solver foundation 与 Matlab fmincon 中的约束非线性优化

任何人都可以向我展示MicrosoftSolverfoundation3.0中约束非线性优化的示例或评论吗?与Matlab的fmincon相比如何?或者是否有更好的.net库用于约束非线性优化?谢谢, 最佳答案 2012年2月25日的重要更新:MSF3.1现在通过其NelderMeadSolver求解器支持使用有界变量的非线性优化:http://msdn.microsoft.com/en-us/library/hh404037(v=vs.93).aspx对于一般的线性约束,Microsoftsolverfoundation仅通过其内

c# - 如何安排有条件的 ContinueWith

我在一堆LINQ查询上有一些GUI。查询需要一些时间来执行,所以我希望GUI能够响应并显示繁忙指示器和进度条。许多查询是为了检查数据中存在的某些条件。如果查询返回空结果,应用程序应继续下一个查询。如果它返回结果,则返回集的严重性将是“警告”或“错误”。如果是警告,则继续执行。如果出错,则停止。许多代码与线程池和GUI玩“乒乓球”。准代码:TaskFactory.StartNew(()=>{Runinbackground}.ContinueInGui(()=>{Updatesomething}).ContinueInBackground(()=>{Domorework;}).Contin

c# - .NET:EventHandler 竞争条件修复如何工作?

有以下模式用于在引发事件时避免竞争条件,以防另一个线程取消订阅MyEvent,使其为空。classMyClass{publiceventEventHandlerMyEvent;publicvoidF(){EventHandlerhandler=MyEvent;if(handler!=null)handler(this,EventArgs.Empty);}}与容易出现这种竞争条件的错误方法相反:classMyClass{publiceventEventHandlerMyEvent;publicvoidF(){if(MyEvent!=null)MyEvent(this,EventArgs.

c# - 实现具有通用约束的接口(interface)

有点惊讶为什么这不起作用这是编译器的限制还是不支持它是否有意义?publicclassClass1:IInterfacewhereT:Test2{publicTTest{get;privateset;}}publicclassTest2{}internalinterfaceIInterface{Test2Test{get;}}我得到的错误是'ClassLibrary1.Class1'doesnotimplementinterfacemember'ClassLibrary1.IInterface.Test'.'ClassLibrary1.Class1.Test'cannotimpleme

基于目标值的 C# AutoMapper 条件映射

谁能建议如何在AutoMapper中使用条件映射,根据现有的TARGET属性值从SOURCE对象映射TARGET对象中的值?所以我的源类是:publicclassUserDetails{publicStringNickname{get;set;}}我的目标类是:publicclassProfileViewModel{publicBooleanNicknameIsVisible{get;set;publicStringNickname{get;set;}}仅当目标属性“NicknameIsVisible”值已设置为TRUE时,我才想将TARGET中的“Nickname”属性值设置为匹配S

c# - OR 条件的流利断言

我正在尝试为以下条件设置流畅的断言。但是找不到带有表达式的方法或带有Or()的ObjectAssertion。我必须检查我的服务状态是枚举值Pending还是Activeservices.Should().HaveCount(totalServices).And.BeOfType().Which.ServiceStatusKey.Should().Be(Status.Pending);我想要这样的东西,.Be(Status.Pending).Or().Be(Status.Active)有人可以帮我实现这个目标吗。FluentAssertions版本:4.1.1(最新来自Nuget)附加