草庐IT

why-you-should-teach

全部标签

c# - "Only catch exceptions you can handle"到底是什么意思?

我的任务是为我正在处理的.NET/C#项目编写异常处理策略和指南文档。我很难做到。关于如何/何时抛出、捕获、包装异常,有很多可用的信息,但我正在寻找描述除了包装和抛出异常之外的catchblock内应该进行哪些类型的事情。try{DoSomethingNotNice();}catch(ExceptionICanHandleex){//Lookingforexamplesofwhatpeoplearedoingincatchblocks//otherthanthroworwrappingtheexception,andthrowing.}提前致谢 最佳答案

c# - 未找到类型或命名空间 "are you missing assembly reference"而所有引用都正确

我正在尝试使用MSBuildWorkspaceclass.我的项目中有所有程序集引用。当我在对象浏览器中打开引用时,我看到了namespace和我尝试使用的类。但是在我接下来的using语句中,使用Microsoft.CodeAnalysis.MSBuild我得到一个Thetypeornamespacename'MSBuild'doesnotexistinthenamespace'Microsoft.CodeAnalysis'(areyoumissinganassemblyreference?)但有趣的是,语法高亮器识别类型名称,这是编译器的提示这是构建日志1>c:\windows\M

c# - Elasticsearch 和 NEST : How do you purge all documents from an index?

我知道如何deleteanentireElasticSearchindex,但是如何从索引中清除所有文档?我的动机:我想要一个“ReIndex”方法来清除索引的全部内容,以便我可以重新加载所有文档。ElasticSearch语法会很有帮助。NEST语法会更好。 最佳答案 我在Nest中寻找类似的东西,我想我应该把语法放在这里供任何人寻找:varnode=newUri("http://localhost:9200");varsettings=newConnectionSettings(node);varclient=newElasti

c# - "Getters should not include large amounts of logic."是真是假?

我倾向于假设getter只不过是围绕一组相当轻量级的指令的访问控制包装器,用于返回一个值(或一组值)。因此,当我发现自己编写的setter更长、更耗CPU时,我觉得也许这不是最明智的做法。在我自己的代码中调用getter(特别是让我们引用C#,其中方法调用与getter调用之间存在语法差异)时,我隐含地假设它们是轻量级的——但实际上这可能不是案例。对此的普遍共识是什么?除了使用其他人的库之外,您是否编写heavygetters?还是您倾向于将较重的getter视为“完整方法”?附言。由于语言差异,我预计对此会有很多不同的想法...... 最佳答案

c# - 隐式类型数组 : why we can't set array size explicitly?

C#语言规范(7.6.10.4)说,数组创建表达式有树种:newnon-array-type[expression-list]rank-specifiersoptarray-initializeroptnewarray-typearray-initializernewrank-specifierarray-initializer第三个用于隐式类型数组:varfoo=new[]{1,2,3};问题:在隐式类型数组的情况下,是否有任何重要的理由禁止显式设置数组大小?与这种语法相比,它看起来像是不对称行为:varfoo=newint[3]{1,2,3};更新。稍微澄清一下。我可以看到,显式设

c# - ASP.NET MVC3 中的 Razor 和接口(interface)继承 : why can't this property be found?

我在ASP.NETMVC3应用程序中的一个RazorView有一个奇怪的问题。当我将其值写入调试器控制台时,该属性似乎确实存在,但我收到一条错误消息,告诉我无法找到该属性。我的View将一个名为FormEditViewModel的类作为其模型。FormEditViewModel有一个IForm类型的属性,一个继承自另一个接口(interface)IFormObject的接口(interface)。IFormObject定义了一个属性Name,因此任何实现IForm的东西都必须实现一个名为Name的属性。具体类型Form实现接口(interface)IForm并根据需要定义Name属性。

C#.Net : Why is my Process. Start() 挂起?

我正在尝试以另一个用户的身份从我的网络应用程序运行批处理文件。由于某种原因,批处理文件挂起!我可以在任务管理器中看到“cmd.exe”在运行,但它永远坐在那里,无法被杀死,批处理文件也没有运行。这是我的代码:SecureStringpassword=newSecureString();foreach(charcin"mypassword".ToCharArray())password.AppendChar(c);ProcessStartInfopsi=newProcessStartInfo();psi.WorkingDirectory=@"c:\build";psi.FileName=

c# - MSBuild 未处理的异常 : The FileName property should not be a directory unless UseShellExecute is set

版本dotnet核心SDK:2.1.403docker:18.09.7Linux内核:5.0.0-27Ubuntu:18.04.3问题我正在docker中运行一个ASP.NETCore项目。当我docker-composeup时,我得到以下信息:UnhandledException:Microsoft.Build.BackEnd.NodeFailedToLaunchException:TheFileNamepropertyshouldnotbeadirectoryunlessUseShellExecuteisset.--->System.ComponentModel.Win32Exce

c# - Asp.net Mvc : why is browser looking for favicon. 图标

我知道有一个解决方案可以阻止mvc框架处理“favicon.ico”请求(solution),但我不知道为什么它首先要寻找这个图标。我使用FindinFiles>EntireSolutionforfavicon.ico进行了搜索,但没有找到任何内容。我在网站的html源代码中搜索favicon.ico,但没有找到。它在哪里?为什么浏览器要尝试为它提供服务? 最佳答案 favicon.ico是一个约定-但它是浏览器获取链接、选项卡等图像的一种方式:请注意,如今,图像位置也可以在元数据中设置(这很方便,因为它允许图像是每页而不是每个域,

c# - 有人可以解释测试驱动开发中的 "Fake it till you make it"方法吗?

当您采用“假装直到成功”TDD方法时,我很难理解代码的演变。好吧,你伪造了它,假设你返回了一个常量,所以失败的测试在开始时是绿色的。然后你重构了你的代码。然后你运行同样的测试,它显然会通过,因为你伪造了它!但是如果测试通过了,你怎么能相信它,尤其是当你知道你是伪造的时候?应该如何用您的真实代码重构来重构伪造的测试,以便它仍然可靠?谢谢 最佳答案 简短的回答是:编写更多测试。如果该方法返回一个常量(当它应该计算某些东西时),只需添加一个具有不同结果的条件测试。因此,假设您有以下内容:@TestpublicvoidtestLength(