草庐IT

可读性

全部标签

c# - 除了 LINQ,有人发现 "var"的用途吗?

只是好奇。我大约99.999%确定没有...但有什么?编辑:这些都是好的答案(节省打字时间或使代码不那么冗长以提高“可读性”)。我想我应该澄清一下我所说的“使用”是什么意思——一些没有“var”就无法完成的构造/设计。 最佳答案 什么在可读性方面更好?AReallyReallyLongBusinessObjectNameobj=newAReallyReallyLongBusinessObjectName();或varobj=newAReallyReallyLongBusinessObjectName();我说的是可读性,因为使用va

c# - 是否有比在异步方法中调用 ConfigureAwait(false) 更具可读性的替代方法?

我目前正在编写大量async库代码,并且我知道在每次异步调用之后添加ConfigureAwait(false)的做法,以便避免将延续代码编码回原始(通常是UI)线程上下文。由于我不喜欢未标记的bool参数,因此我倾向于将其写为ConfigureAwait(continueOnCapturedContext:false)。我添加了一个扩展方法以使其更具可读性(并减少了输入):publicstaticclassTaskExtensions{publicstaticConfiguredTaskAwaitableWithoutCapturingContext(thisTasktask){ret

c# - 扩展方法 - IsNull 和 IsNotNull,好用还是坏用?

我喜欢可读性。所以,我在几分钟前想出了一个扩展方法,用于(x=!null)类型语法,称为IsNotNull。反过来,我还创建了一个IsNull扩展方法,因此if(x==null)becomesif(x.IsNull())和if(x!=null)becomesif(x.IsNotNull())但是,我担心我可能会滥用扩展方法。您认为这是对扩展方法的错误使用吗? 最佳答案 它似乎没有任何可读性,并且可能会使阅读代码的人感到困惑,想知道这些方法中是否存在他们不知道的任何逻辑。我使用了一个PerformIfNotNull(Func方法)(以

c# - 使用 "base"是不好的做法,即使它可能有利于可读性?

我知道这是一个主观问题,但我一直对编码风格的最佳实践感到好奇。ReSharper4.5在实现类中的基方法调用之前就关键字“base”发出警告,即base.DoCommonBaseBehaviorThing();虽然我很欣赏“少即是好”的心态,但我也花了很多时间调试/维护高度链接的应用程序,并且觉得仅通过查看就知道成员调用是对基础对象的可能会有所帮助在它。当然,更改ReSharper的规则很简单,但你们怎么看?调用基成员时应该使用“base”吗? 最佳答案 唯一应该使用base.MethodCall();的情况是子类中有一个重写的同名

c# - .net 代码的可读性和可维护性

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。目前有一场关于哪种代码更具可读性的争论我们有一个程序员,他有c背景,当那个程序员编码时,它看起来像stringfoo="bar";if(foo[foo.Length-1]=='r'){}我们有另一个程序员不喜欢这种方法,宁愿使用if(foo.EndsWith("r")){}哪种方式进行这些类型的操作更好?

用于解析人类可读时间跨度的 C# 库

是否存在可将人类可读时间跨度解析为.NETTimeSpan的库?我需要一些可以解析字符串的东西:30days1week5hours有这样的东西吗?自己写可能不太难,但如果有什么东西在那里,那就容易多了!我目前不需要像“30天3小时5分钟”这样的功能,只需要一个值,但它不会有坏处! 最佳答案 我曾经尝试过这个,我当时在玩解析器,因为我对它们一无所知,所以不要指望质量。但是您可以在这里获取代码:http://timestamper.codeplex.com/我有一段时间没看它了,但我很确定它可以完成您上面提到的所有事情。编辑:刚刚注意到

c# - 使用基于约束的断言提高断言 IsNotNullOrEmpty 的可读性

我目前正在重写一些单元测试以使用NUnit3而不是NUnit2,并且需要将一些断言更改为基于约束的断言。我有以下断言:Assert.IsNullOrEmpty(result);我已经更改为:Assert.That(result,Is.Null.Or.Empty);但是,我对断言IsNotNullOrEmpty时的可读性并不完全满意:Assert.That(result,Is.Not.Null.And.Not.Empty);我目前的建议是创建以下静态类:publicstaticclassText{publicstaticEmptyConstraintIsNullOrEmpty=>Is.N

c# - 为什么属性的属性必须是可读的?

考虑以下属性。internalclassNiceAttribute:Attribute{privatestring_stuff;publicstringStuff{set{_stuff=value;}}}当我尝试使用属性[Nice(Stuff="test")]时,编译器会出现以下错误。'Stuff'isnotavalidnamedattributeargument.Namedattributeargumentsmustbefieldswhicharenotreadonly,static,orconst,orread-writepropertieswhicharepublicandnot

javascript - 人类可读值的实际数字

我有字节数据。我需要将这些值绘制为图表上的人类可读标签(如2.5KB、14MB等),并且需要帮助处理函数(输入数据-实际值,输出-人类可读字符串)。我是这样实现的,但是我想要更优雅的实现functiontickFormatter(value,type){varsuffix=(type=="bytes")?['B','KB','MB','GB']:['','K','M','G']if(value>(1024*1024*1024*1024)){return(value/(1024*1024*1024*1024)).toFixed(2)+suffix[3]}elseif(value>(102

javascript - 如何在不等待整个文件的情况下将可读流通过管道传输到 URL.createObjectURL?

我知道使用mediaSource是可行的,但媒体源不支持所有视频格式(例如片段mp4)。这是一个问题,因为我的应用程序没有可以修复文件的服务器。它只是一个客户端应用程序。constblob=awaitipfs.getBlobFromStream(hash)consturl=URL.createObjectURL(blob)this.setState({...this.state,videoSrc:url})constgetBlobFromStream=async(hash)=>{returnnewPromise(asyncresolve=>{letentireBufferconsts=