草庐IT

NAT模式

全部标签

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

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

c# - Windows 窗体 DataGridView 是否实现了真正的虚拟模式?

我有一个SQL表,其中包含当前100万行,这些行会随着时间的推移而增长。有一个特定的用户要求来呈现一个可排序的网格,该网格显示所有行而不分页。用户希望能够使用滚动条非常快速地从一行跳到另一行,从上跳到下。我熟悉“虚拟模式”网格,它只呈现整体数据的可见子集。它们可以提供出色的UI性能和最低的内存要求,(我什至在很多年前使用这种技术实现了一个应用程序)。Windows窗体DataGridView提供了一种看起来应该是答案的虚拟模式。然而,与我遇到的其他虚拟模式不同,它仍然为每一行分配内存(在ProcessExplorer中确认)。显然,这会导致整体内存使用量不必要地大幅增加,并且在分配这些

c# - C# 中通用类的特化模式?

在C#中,有时我希望可以为泛型类的某些“实例化”创建特殊方法。更新:下面的代码只是一个更抽象问题的愚蠢示例——不要过分关注时间序列,只是针对某些T的“添加额外方法”的原则。例子:classTimeseries{...TimeSeriesSlice(...){...}}在T是double的情况下,我想要一些额外的方法,比如Integrate(),Interpolate()等等只对double有意义,因为我需要对它们进行算术运算。有几种方法可以做到这一点,但我找不到一种令我满意的方法。1。继承到一个特殊的类classTimeseriesDouble:Timeseries{doubleInt

c# - 为什么存储库模式在 Entity Framework 中被广泛使用,好像它很复杂?

我正在创建一个演示项目,其中包含使用存储库模式和依赖项注入(inject)的crud操作。这是我的结构:方法1(非常流行,被许多开发人员使用)我的存储库界面:publicpartialinterfaceIRepository{voidInsert(Tentity);}我的服务层:publicpartialinterfaceIEmployeeService{voidInsertCategory(EmployeeMasteremployeeMaster);}我的类将实现该接口(interface)(服务):publicpartialclassEmployeeService:IEmploye

c# - 如何在 C# 中使用通配符模式进行字符串比较

C#是否提供了任何方法来比较字符串与像通配符模式。或者我可以说我想找一个“LikeOperator”来做字符串比较。假设我有一个字符串。我还有一个段落,我想在这个段落上找到字符串,但是如何。在SQL中我们可以使用LIKE运算符来完成。任何建议和回复都非常感谢。 最佳答案 通配符是一种复杂的野兽(正则表达式的一种形式),但听起来您需要Contains方法。你可以只做paragraph.Contains(sentence)。 关于c#-如何在C#中使用通配符模式进行字符串比较,我们在Stac

c# - 规范模式毫无意义吗?

我只是想知道规范模式是否毫无意义,给出以下示例:假设您想检查客户的帐户中是否有足够的余额,您可以创建如下规范:newCustomerHasEnoughMoneyInTheirAccount().IsSatisfiedBy(customer)但是,我想知道的是,我可以通过在Customer类中使用Propertygetter来实现与规范模式相同的“好处”(例如只需要更改适当的业务规则):publicclassCustomer{publicdoubleBalance;publicboolHasEnoughMoney{get{returnthis.Balance>0;}}}来自客户端代码:c

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

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

c# - 使用 Mocks 验证依赖调用时的 TDD Arrange Act Assert 模式

我正在使用Moq来测试一些void方法的行为。使用MockBehaviour.Strict必须在Arrange步骤期间指定对模拟的每次调用。这导致许多测试没有任何Assert(或Verify)步骤。通过条件只是测试运行没有抛出异常。我错过了什么吗?Arrange,Act,Assert模式在使用严格模拟时是否不合适?是否有更语义化的方式来安排这些测试?一个简单的虚构例子......[TestClass]publicvoidDeleteUser_ShouldCallDeleteOnRepository(){//ArrangevaruserRepository=newMock(MockBeh

c# - C#中的策略模式

我一直在阅读HeadFirstDesignPatterns(最近刚入读),并且正在阅读有关策略模式的内容,我突然想到这可能是实现计算税收等通用方法的好方法。关于我在工作中使用的所有特定对象,但我对此有疑问。这是我的想法:publicinterfaceITax{decimalProvincialTaxRate{get;set;}//Yes,I'mCanadian:)decimalCalculateTax(decimalsubtotal);}publicSaskatchewanTax{publicdecimalProvincialTaxRate{get;set;}publicSaskatc

c# - 在 Debug模式下跳过 While 循环

场景如下:我在要调试的方法的开头放置了一个断点...首先假设此方法中有第1部分,我想进入/跳过某些代码。..很好......在那之后有一个While循环,我不想进入/跳过它,我只想告诉调试器嘿,你自己运行这个循环10次,然后让我转到第2部分我的代码在此While循环之后开始,是否可以使用调试选项执行此操作?所以像这样:BreakPoint:MyMethod{PartOneofthecode:Ok,letsdebugitWhileLoop:Idonotcare,DonotwanttodebugitPartTwoofthecode:Yes,Iwanttodebugittoo}