草庐IT

c# - 哪些单元测试框架以及如何开始(针对 asp.net mvc)

我以前从未做过单元测试,但现在我愿意尝试一下。什么框架最适合初学者?优点和缺点在开始任何编码之前我应该​​阅读什么?书籍/文章/代码/博客是否有任何开源“示例项目”?我将使用asp.netmvc/C#来使用它。 最佳答案 如果您在VisualStudio中集成了单元测试(我认为它是Professional的一部分并且更好),请从它开始,因为它是集成的。不利之处在于,据我所知,在VisualStudio或TeamFoundationServer之外没有测试运行程序会取消其自动测试资格,但我不确定该信息的最新情况。其他选择是xUnit.

c# - 在 C# 中,我如何知道要捕获哪些异常?

我已经养成了使用通用catch语句的习惯,并且我以通用方式处理这些异常。这是不好的做法吗?如果是这样,我如何知道可以抛出哪些特定异常以及捕获哪些异常? 最佳答案 是的,除了在一些非常特殊的情况下这是不好的做法。我能想到的一个常见情况是,捕获所有异常并不是一个糟糕的主意,当您在应用程序即将自行关闭之前记录一条消息或堆栈跟踪(或者,也许,您正在记录并重新抛出)。只捕获您知道可以处理的异常。不多也不少。如果您不知道可以从方法中抛出异常,那么无论如何您都不会正确处理它,所以不要捕获它。方法和库负责记录您应该能够处理的异常。此外,不要捕获指示

c# - Lazy<T> 与标准惰性实例化相比有哪些优势?

考虑这个例子,它展示了延迟初始化的两种可能方式。除了线程安全之外,在此处使用Lazy是否有任何特定优势?classCustomer{privatedecimal?_balance2;privatestaticdecimalGetBalanceOverNetwork(){//lengthynetworkoperationsThread.Sleep(2000);return99.9M;}publicdecimal?GetBalance2Lazily(){return_balance2??(_balance2=GetBalanceOverNetwork());}privatereadonly

c# - 哪些 C# 类型名称比较特殊?

在什么情况下输入IsSpecialName返回真?通过我的简短研究,我发现属性访问器和运算符重载具有特殊的名称,以及名称中包含下划线的任何类型。任何人都可以给我一个类型名称特殊情况的完整描述吗? 最佳答案 ECMA-335中发布的CLI规范是此类信息的良好来源。在文档中搜索rtspecialname(CLR特有的名称)和specialname(工具特有的名称。为rtspecialnames打开了specialname属性。给出这些匹配项:枚举类型的底层value__字段属性的getter和setter访问器方法事件的添加、删除和触发

c# - 保护 Azure 功能的方法有哪些

我已经使用c#在Azure门户中编写了5个Azure函数。以下是安装我的应用程序的步骤:-复制部署脚本到集群的Edge节点部署执行以下操作的脚本调用Azure函数以从WASB获取我的应用程序构建。在边缘节点上安装我的应用程序调用Azure函数进行一些更新。上述过程将在CustomerEdge节点上执行。授权使用“keys”这里描述的只是为了提供另一层APIkey授权,当我的脚本需要由公共(public)客户端(如边缘节点)调用时不适用,因为它在那里是可发现的。在我的场景中保护AzureFunctions的最佳方法是什么? 最佳答案

c# - 如何确定 Linq-To-Sql 对象中更改了哪些字段

我有一个linq-to-sql数据库,我想在其中记录对实体所做的一些更改。现在,我正在通过读取DataContext.GetChangeSet().Updates属性获取更新的实体,但这并没有为我提供来自已更改实体的字段。有没有办法知道更新的实体中哪些字段被修改了??谢谢 最佳答案 DataTable有一个方法GetModifiedMembers,它将返回一个成员列表,这些成员已针对指定的实体实例进行了更改。DataClasses1DataContextcontext;Class1instance=context.GetChange

c# - 从大小为 n 的列表中查找哪些数字与另一个数字相加的算法

我有一个十进制数(我们称之为目标)和一个由其他十进制数组成的数组(我们称之为数组元素),我需要找到所有组合来自元素的总和为目标的数字。我更喜欢C#(.Net2.0)中的解决方案,但不管怎样,最好的算法都可能获胜。您的方法签名可能类似于:publicdecimal[][]Solve(decimalgoal,decimal[]elements) 最佳答案 有趣的答案。感谢您对维基百科的指点-虽然很有趣-他们实际上并没有解决我正在寻找完全匹配的问题-更多的是会计/账簿平衡问题,而不是传统的装箱/背包问题。我一直很感兴趣地关注堆栈溢出的发展

c# - 我的 DDD 工厂类中应该有哪些方法?

我很难理解我的工厂类在我的DDD项目中应该做什么。是的,工厂应该用于创建对象,但它究竟应该做什么。考虑以下工厂类:publicclassProductFactory{privatestaticIProductRepository_repository;publicstaticProductCreateProduct(){returnnewProduct();}publicstaticProductCreateProduct(){//Whatelsewouldgohere?}publicstaticProductGetProductById(intproductId){//Shouldi

c# - 这些对象中的哪些符合垃圾收集条件?

这是我最近在面试中被问到的一个问题:在“GC.Collect()”调用期间会收集哪些“随机”对象?Stringa=newRandom().Next(0,1)==1?"Whatever1":"Whatever2";Stringb=newWeakReference(newRandom()).Target.Next(0,1)==1?"Whatever1":"Whatever2";GC.Collect();我回答说这是一个特定于实现的问题,它高度依赖于GC实现和相应的弱引用语义。据我所知,C#规范没有提供关于GC.Collect应该做什么以及应该如何处理弱引用的确切描述。但是,我的面试官想听点

c# - 如何找出当前屏幕上有哪些 DataGridView 行?

在我的C#(2010)应用程序中,我有一个处于虚拟模式的DataGridView,它包含数千行。是否有可能找出当前屏幕上有哪些单元格? 最佳答案 publicvoidGetVisibleCells(DataGridViewdgv){varvisibleRowsCount=dgv.DisplayedRowCount(true);varfirstDisplayedRowIndex=dgv.FirstDisplayedCell.RowIndex;varlastvisibleRowIndex=(firstDisplayedRowIndex+