草庐IT

重构技巧

全部标签

c# - 重构斐波那契算法

我已经很多年没有使用静态类型的语言了,我给自己设定了一个任务,那就是快速掌握C#。我在这里使用我惯用的技巧来完成十五个练习http://www.jobsnake.com/seek/articles/index.cgi?openarticle&8533作为我的第一个任务。我刚刚完成了第二个Fibonacci任务,它没有花很长时间并且工作得很好,但在我看来它看起来很丑陋,我确信可以用更少的代码行来实现。我通常喜欢通过与已经知道自己在做什么的人结对编程来学习,但这种选择今天对我不开放,所以我希望在这里发帖是下一个最好的事情。那么对于所有C#Jedi来说,如果你要重构下面的代码,它会是什么样子

c# - Visual Studio 2010 中的重构选项在 C# 和 VB 之间有所不同

在VS2010C#中,当我右键单击时,会出现“重构”菜单,其中包含以下选项:重命名提取方法封装字段提取接口(interface)删除参数重新排序参数这些选项在VS2010VB.Net中可用吗?当我右键单击时,我只能看到“重命名”吗? 最佳答案 “重命名”是VB.Net唯一的重构。C#绝对更健壮。查看CodeRushXpress.它是完整工具的精简免费版本,但它可能会提供您缺少的一些重构。就个人而言,我使用并且非常喜欢Resharper.在我看来,物有所值。 关于c#-VisualStud

c# - 为什么这个内存管理技巧有效?

引用thisUnitydocumentation并转到部分Largeheapwithslowbutinfrequentgarbagecollectionvartmp=newSystem.Object[1024];//makeallocationsinsmallerblockstoavoidthemtobetreatedinaspecialway,whichisdesignedforlargeblocksfor(inti=0;i诀窍是在程序启动时预先分配一些内存块。为什么这个技巧有效?当block被预分配时,它们是否以某种方式“注册”(或“绑定(bind)”)到应用程序,因此即使tmp在

c# - 将条件替换为多态重构还是类似的?

我曾尝试问过这个问题的一个变种。我得到了一些有用的答案,但仍然没有什么对我来说很合适。在我看来,这真的不应该那么难,但我无法找到一个优雅的简单解决方案。(这是我的上一篇文章,但是请首先尝试看一下此处作为程序代码说明的问题,以免受到前面的解释的影响,该解释似乎导致非常复杂的解决方案:Designpatternforcostcalculatorapp?)基本上,问题是为可以包含许多服务的项目创建所需小时数的计算器。在这种情况下,是“写作”和“分析”。对于不同的服务,小时数的计算方式有所不同:通过将“每个产品”的小时率乘以产品数来计算写作,并且项目中包含的产品越多,小时率就越低,但是总的小时

c# - AutoFixture重构

我开始使用AutoFixturehttp://autofixture.codeplex.com/因为我的单元测试因大量数据设置而变得臃肿。与编写单元测试相比,我花在设置数据上的时间更多。这是我的初始单元测试的示例(示例取自DDD蓝皮书的cargo应用程序示例)[Test]publicvoidshould_create_instance_with_correct_ctor_parameters(){varcarrierMovements=newList();vardeparureUnLocode1=newUnLocode("AB44D");vardepartureLocation1=ne

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

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

安卓玩机搞机技巧综合资源-----查看手机硬件全部参数 隐藏参数 多个软件【十七】

接上篇安卓玩机搞机技巧综合资源------如何提取手机分区小米机型代码分享等等【一】安卓玩机搞机技巧综合资源------开机英文提示解决dm-veritycorruptionyourdeviceiscorrupt.设备内部报错AB分区等等【二】安卓玩机搞机技巧综合资源------EROFS分区格式小米红米机型分区类型刷写recovery方法列举【三】安卓玩机搞机技巧综合资源------进入9008步骤MTK端口修改屏幕分辨率如何刷写GSI镜像等等【四】安卓玩机搞机技巧综合资源-----关闭miui广告怎么省电替换开机动画LOGO锁屏壁纸等等【五】安卓玩机搞机技巧综合资源-----卸载内置软件获

c# - 具有多个返回点的重构方法

**编辑:下面有几个可行的选项。请根据您对此事的看法进行投票/评论。我正在清理并向具有以下基本结构的c#方法添加功能:publicvoidprocessStuff(){StatusreturnStatus=Status.Success;try{boolstep1succeeded=performStep1();if(!step1succeeded)returnStatus.Error;boolstep2suceeded=performStep2();if(!step2suceeded)returnStatus.Warning;//..Moresteps,someofwhichcould

c# - C#重构问题

我今天看到了下面的代码,我不喜欢它。它在做什么很明显,但我还是要在这里添加一点解释:基本上,它从数据库中读取应用程序的所有设置,并遍历所有设置以查找数据库版本和应用程序版本,然后将一些变量设置为数据库中的值(稍后使用)。我看了看,觉得它有点难看-我不喜欢switch语句,我讨厌在完成后继续遍历列表的东西。所以我决定重构它。我想问大家的问题是你们将如何重构它?或者您认为它甚至根本不需要重构?代码如下:using(varsqlConnection=newSqlConnection(Lfepa.Itrs.Framework.Configuration.ConnectionString)){s

c# - 你会如何重构这段臭代码? (记录、复制和粘贴,.Net 3.5)

我有这样的代码:Loggerlogger=newLogger();System.Diagnostics.StopwatchstopWatch=newSystem.Diagnostics.Stopwatch();logger.LogInformation("CallingSomeObject.SomeMethodat"+DateTime.Now.ToString());stopWatch.Start();//ThisisthemethodI'minterestedin.SomeResponseresponse=someObject.SomeMethod(someParam);stopWa