草庐IT

优化设计

全部标签

c# - TDD 是否意味着不考虑类设计?

我正在制作一款有趣的角色扮演游戏,并尝试在开发过程中使用TDD。我看到的许多TDD示例都侧重于首先创建测试,然后创建使测试通过所需的对象。例如:[Test]publicvoidCharacter_WhenHealthIsBelowZero_IsDead(){//createdefaultcharacterwith10healthCharactercharacter=newCharacter();character.SubtractHealth(20);Assert.That(character.IsAlive,Is.EqualTo(false));}因此,在此基础上,我将创建角色类和适

c# - 重复代码位的设计模式/C#技巧

我有一个WCF服务,它记录所有异常,然后将它们作为FaultExceptions抛出。我正在做很多重复,例如在每个服务方法中。try{//dosomework}catch(Exceptionex){Logger.log(ex);//actuallywillbeFaultExceptionbutyougettheidea.throwex;}我正在寻找一种更优雅的方法来执行此操作,因为我在每个服务中剪切和粘贴try/catch。是否有设计模式/C#技巧可用于使其更优雅? 最佳答案 你在谈论AOP-AspectOrientedProgra

c# - 领域特定语言 (DSL) 和领域驱动设计 (DDD)

领域特定语言(DSL)和领域驱动设计(DDD)之间有什么异同? 最佳答案 领域驱动设计(DDD)是一种思考和交流问题及其解决方案的方式。领域特定语言(DSL)是一种编写代码的方式。它们很相似,因为它们都以“域”一词开头。就是这样,我猜。:-) 关于c#-领域特定语言(DSL)和领域驱动设计(DDD),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/177628/

c# - 设计更好的 GUI?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我使用C#已有一段时间了,但还没有真正掌握我的UI设计技能。在我设计它们的时候,我发现自己很喜欢这个设计,但后来,当我回顾它时,我看到了糟糕的工作。我在工作中想到了一个例子,我必须使用127个按钮来代表我们实验室中的127台计算机。:/我想知道是否有人可以向我推荐可以教授良好UI设计的网站或书籍?谢谢!

c# - 设计器模式下的 ASP.NET 用户控件属性值选项

我正在使用VisualStudio2008|.NET3.5|C#。我创建了一个具有以下属性的用户控件:DisplayMode。DisplayMode旨在显示一系列文本框或单个文本框。[Browsable(true),Category("Appearance"),DefaultValue(DISPLAY_MODE_FIELDS),Description("Indicateswhethertodisplaythephonenumberasasingletextboxorseparatefields.")]publicstringDisplayMode{get{returnmDisplayM

c# - 在我的项目中仅针对 Owned<T> 引用 Autofac 是不是糟糕的设计?

我最近成为Autofac的OwnedInstances功能的重度用户。例如,我用它来提供一个工厂来为我的数据库创建一个工作单元,这意味着我依赖于UnitOfWork工厂的类正在请求以下类型的对象:Func>这非常有用——非常适合keepingIDisposableoutofmyinterfaces--但它是有代价的:因为Owned是Autofac程序集的一部分,我必须在我的每个知道Owned的项目中引用Autofac,并在每个代码中加入“usingAutofac.Features.OwnedInstances”文件。Func具有构建到.NET框架中的巨大好处,因此我毫不怀疑将Func用

c# - 循环优化或 lambda 闭合有问题?

在下面的方法中,我发送了一个Action枚举,并希望返回一个调用Action的ICommand数组。包装那些Action(relayCommand需要)。问题是,如果我在foreach(甚至是for循环)中执行此操作,我得到的命令总是执行参数中传递的第一个操作。publicstaticICommand[]CreateCommands(IEnumerableactions){Listcommands=newList();Action[]actionArray=actions.ToArray();//works//commands.Add(newRelayCommand(o=>{actio

c# - 如何设计流畅的异步操作?

异步操作似乎无法与我更喜欢编写代码的流畅界面配合使用。异步如何与流畅结合?示例:我有两个方法之前返回了一个MyEntity但在更改为Async时效果不佳。在我异步化它们之后,我必须await任务的结果,但我必须为添加的每个步骤执行此操作:MyEntityXx=await(awaitFirstStepAsync()).SecondStepAsync();必须有更好的方法。 最佳答案 更好的方法是使用类似于LINQ的延迟执行。您可以拥有许多实际上什么都不做的方法,它们只是设置一些选项或存储一些逻辑。最后有一些方法可以实际执行之前存储的所

c# - 设计游戏对象

我最近开始使用MicrosoftXNA和C#开发一款自娱自乐的小游戏。我的问题是关于设计游戏对象和继承它的对象。我将把游戏对象定义为可以在屏幕上呈现的东西。因此,为此,我决定创建一个基类,所有其他需要渲染的对象都将继承该基类,称为GameObject。下面的代码是我制作的类:classGameObject{privateModelmodel=null;privatefloatscale=1f;privateVector3position=Vector3.Zero;privateVector3rotation=Vector3.Zero;privateVector3velocity=Vec

c# - 在 C# 中应用 DeMorgan 定理手动优化条件语句中的 bool 表达式是否有用(例如 if 条件)

回到我用C和C++完成大部分工作的那一天,当然,我会手动申请deMorgan'stheorem优化任何重要的bool表达式。在C#中执行此操作是否有用,或者优化器是否不需要这样做? 最佳答案 在如此快的处理器上,重新排列bool表达式几乎不可能在速度上产生任何实际差异。而且C#编译器非常聪明,它也会优化它。优化可读性和清晰度! 关于c#-在C#中应用DeMorgan定理手动优化条件语句中的bool表达式是否有用(例如if条件),我们在StackOverflow上找到一个类似的问题: