windows上开发,今天发现在linux编译的日志中出现了如下的警告: xxxx.cpp:8: 警告:对 NULL 对象非静态数据成员‘XXX::xxx’的访问无效 xxxx.cpp:8: 警告:(可能错误使用了
到底是谁占用了那么多的空间!如果你是 ReSharper 的重度用户,那么可能你的调查结果会直指 JetBrains ReSharper。...本文将告诉你如何安全地删除这些文件来释放你的 C 盘空间,然后在 ReSharper 中设置其他的缓存目录。...我之前写过一篇文章介绍如何使用它: 找回你 C 盘丢失的空间(SpaceSniffer) 当你是 ReSharper 的重度用户的时候,你很有可能会看到如下的场景: image.png 是的,JetBrains...虽然运行时的缓存也在这里,但是如果你直接把这个目录删掉了,那么 ReSharper 插件以及 JetBrains 全家桶也就不能正常使用了。.../post/safely-remove-jetbrains-resharper-cache-folder.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 发布于 2018-03-20 11:54...例如将单元测试中的 Assert.AreEqual(foo.GetType(), typeof(Foo)); 换成 Assert.IsInstanceOfType(foo, typeof(Foo));。...于是,ReSharper 会给出警告,并给出推荐的写法;如果遵循 ReSharper 的建议,ReSharper 将自动为我们修改代码。 ? ▲ 给出警告,并提供建议 ?...Assert.AreEqual($instance$.GetType(), typeof($type$)); // 将下面这一句话复制到第二个黑色框中。...例如使用 MSTestEnhancer 进行单元测试时,如果使用了它推荐的单元测试风格,就应该配套使用 ContractTestCase 特性,如果不这么写,必定意味着错误。
2017-12-20 15:04 更新于 2018-04-25 09:11 将文档放到代码里面,文档才会及时地更新...} 有些静态代码检查工具也许可以根据这里的参数判断代码块来认定为此处的参数不能为 null,但这种判断代码无处不在,静态检查工具如何能够有效地捕获每一处的检查呢?难道我们真的要去翻阅文档吗?...image.png ▲ 手动生成 ReSharper Annotations ReSharper 中常用的契约 Attribute CanBeNull 表示参数或返回值可能为 null。...Pure 表示方法不会修改任何状态(这意味着如果连返回值都不用,那调用了也相当于什么都没做)。...本文会经常更新,请阅读原文: https://walterlv.com/post/contracts-in-csharp.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验
如果是以前版本,比如2.0,似乎需要您手工的完成这一步,方法如下: 工具——自定义——重排命令,然后把“重构”菜单删除,毫不犹豫地! ...你可以简单地这样体验一下:Alt+R,N,回车,就可以在当前项目中添加一个类,还记得以前你是怎么做的吗?...,如果有多于一个,或者因为使用了partial分布到好几个文件中,会再弹出一个菜单来供你选择。...提供你处理当前警告的一些建议 有的时候你可能会忽略的一些细节,Resharper不会忽略,比如你用了隐式类型转化: Button btn = sender as Button; //隐式类型转化...为你提供处理当前错误的一些建议 被Resharper标记为红色的即为错误了,有时错误也可能是你有意为之。
ReSharper 是一款非常流行的 Visual Studio 插件,它通过提供一系列强大的功能来帮助开发者更高效地编写、调试和优化 C# 代码。...本文将从浅到深介绍 ReSharper 的一些常见功能,探讨其如何帮助开发者避免常见错误,并通过具体的代码案例进行说明。...二、ReSharper 的基本功能1. 代码分析ReSharper 可以实时分析代码,检测潜在的问题和错误。例如,未使用的变量、冗余的代码块、可能的空引用等。...未处理的异常未处理的异常是常见的编程错误之一,ReSharper 可以帮助开发者及时发现这些问题。...不必要的类型转换不必要的类型转换不仅影响性能,还可能导致运行时错误。ReSharper 可以帮助开发者识别这些转换并提供优化建议。
ReSharper 是一款非常流行的 Visual Studio 插件,它通过提供一系列强大的功能来帮助开发者更高效地编写、调试和优化 C# 代码。...本文将从浅到深介绍 ReSharper 的一些常见功能,探讨其如何帮助开发者避免常见错误,并通过具体的代码案例进行说明。...二、ReSharper 的基本功能 1. 代码分析 ReSharper 可以实时分析代码,检测潜在的问题和错误。例如,未使用的变量、冗余的代码块、可能的空引用等。...未处理的异常 未处理的异常是常见的编程错误之一,ReSharper 可以帮助开发者及时发现这些问题。...不必要的类型转换 不必要的类型转换不仅影响性能,还可能导致运行时错误。ReSharper 可以帮助开发者识别这些转换并提供优化建议。
该测试方法使用的是Theory, 用了4组数据....注: 为了方便, 我使用了resharper. 测试之前一定要重新Build一下. 然后再点击resharper在方法旁边提供的测试按钮即可: ?...然后通过moq的Verify()方法判定repository的AddProduct()和unitOfWork的SaveAsync()方法分别被调用了....然后在UnitOfWork的SaveAsync()执行后有个Callback()回调, 回调时相当于模拟了EFCore的保存, 把最新的值赋给了productModel(看被测试代码), (其实这里不用...这两个很简单, 不多介绍了, 注意这里使用了async版本的Assert.Throws(). 这两个测试会pass, 最终该方法的代码覆盖率就达到100%了: ?
=来判断两个浮点数是否相等可能会导致意想不到的结果....为什么不能直接比较浮点数 浮点数在计算机中是以二进制形式存储的,这种表示方式会导致精度问题.例如,十进制的小数0.1在二进制中是一个无限循环小数,计算机只能存储其近似值.因此,两个看似相等的浮点数在计算机中可能并不完全相等...Unsupported types, only the following types are supported: float, double, and decimal."); } 上面的代码中我们使用了自定义的...==null||Equals(value, DBNull.Value))returndefault; var targetType =typeof(T); var sourceType =value.GetType...=,而是使用一个小的误差范围来判断两个浮点数是否相等.这种方法可以帮助我们避免由于浮点数精度问题导致的错误判断.
单元测试状态查看 通过以上状态我们很清析地看到我们创建的单元测试失败了,我们点击这个单元测试,Test Explorer下面部分便会显示关于这次测试的基本信息 ?...如果安装了Resharper,VisualStudio的主菜单里会出现Resharper菜单,执行以下图示操作便可以打开Resharper Unit Test Explorer ?...如果我们选择一个路径便会将错误导出,很多时候并不需要这么做,我们点击Copy to Clipborard把内容复制到剪辑板,便可以把它复制到自己喜欢的文本编辑器里查看了 Resharper测试技巧-状态过滤...当测试越来越多的时候,我们往往对整个测试项目进行运行,而不是像在开发阶段写一个运行一个,有人可能会有疑问,单元测试写的时候测试通过,以后再测会变成不通过状态吗,答案是肯定的.如果我们的单元测试中包含外部依赖...如果测试方法很多,运行完以后出现多处错误,此时想要一个个找出失败的单元测试不是很方便,此时我们可以借助Resharper Unit Test Explorer中的测试状态过滤功能来过滤出所有的错误测试.
(2)、会将选项——文本编辑器——C#——高级——显示实时语义错误、在编辑中用下划线标识错误这两个选项去掉。这个本来没有什么,但是如果卸载了Resharper, vs编辑器变不会实时提示错误。...用了Alt+F7来搜索这个字符串,等于在查找背后所有的调用者。...关于Resharper的重构功能就是这些,我可能天真地把很多额外功能都算在重构里了,但是它确实能够帮助你快速的对代码进行调整和优化。所以,请不要深究我对重构的概念认识是不是混乱。...很多人说Resharper的性能问题,我想,一个可能的原因是打开的文档太多了,如果你有时刻关闭不需要的文档的习惯,性能或许不会那么差,并且你可以随时打开这些你关闭了的文档,就像在已经打开的文档中切换一样的方便...当然很不全面,例如与Nunit的集成,由于我们不是测试驱动,所以没有任何体验,自然也不敢大放厥词;也很主观,我觉得它好,你可能觉得它不好,萝卜青菜各有所爱。
将警告视为错误 以上只是警告,如果你希望更严格地执行可空引用的建议,可以考虑使用编译错误: 1 2 3 4 5 6 7 8 9 10 11 可能不能确定是否是可空引用类型,那么将视为“未知”。...string walterlv = null; var value = walterlv.ToString(); 在将 null 赋值给 walterlv 变量时,是不会引发程序异常的;而在后面调用了...安全性警告仅会将编译期间可识别到可能运行时异常的代码进行警告(即下面的 walterlv.ToString()),而不会对没有异常的代码进行警告。...ReSharper 支持 ReSharper 从 2019.1.1 版本开始支持 C# 8.0,如果使用早期版本,就会到处报错。
本文告诉大家如何使用 Resharper 特性,在 VisualStudio 最好的插件就是 Resharper 不过他比较卡。...因为 Resharper 无法修改编译所以他只能提示语法,不能告诉编译错误,使用下面的特性可以让Resharper提示开发者语法,一般在开发库就需要用到这些特性。...如果想使用 Resharper 特性,首先需要安装一些类。...CanBeNullAttribute 表示属性或参数可能为空,返回值可能为空。 使用了这个特性,就可以告诉 Resharper 在使用这个属性、参数之前需要先判断是不是空。...ItemNotNullAttribute 表示一个列表的所有参数都不为空 如果判断一个项为空,就会提示这个为true,一般用在函数返回 ItemCanBeNullAttribute 和上面不同,表示列表可能存空的
---- 本文的内容分为三个部分: Visual Studio 能完全还原的 ReSharper 的功能 可能 Visual Studio 在此功能上已经追赶上了 ReSharper 可能 Visual...ReSharper 的功能 可能在多数场景中 Visual Studio 能获得 ReSharper 的此功能效果,在少数场景下不如 ReSharper 可能对多数人来说 Visual Studio...能获得 ReSharper 的此功能效果,对另一部分人来说无法替代 ReSharper 有可能 Visual Studio 在此功能上另辟蹊径比 ReSharper 更厉害,但综合效果不如 ReSharper...Visual Studio 此功能依然很弱,但可以通过安装免费的插件的方式补足 Visual Studio 此功能依然比不上 ReSharper 可能是 Visual Studio 没有此功能 可能是...,以避免陈旧错误知识的误导,同时有更好的阅读体验。
我们在C#下使用的工具,有一个神器,Resharper,他可以帮修改代码、重构,做很多重复的事。...resharper 提供了很有用的代码片,但是我们还是觉得不够,这时我们需要自己编辑 Resharper 代码片。 我将会告诉大家,如果在 resharper 定义自己需要的 代码片 。...如何把类里的类移动到其他文件 如何在 Resharper 忽略文件?...有一些文件需要忽略,不让他分析,因为这文件太多错误,但是是必要的,可以打开Resharper 设置 选择 Code Inspection ,设置,添加例外文件。 ?...如何显示空格 显示有多少空格,有些代码可能存在看不见的字\u0012,如果有这些,你以为是空格。 所以需要显示空格,按 ctrl+r+w ? ----
为什么委托的减法(- 或 -=)可能出现非预期的结果?...会提示“Delegate Subtraction Has Unpredictable Result”,即“委托的减法可能出现非预期的结果”。...▲ 委托的减法可能出现非预期的结果 ReSharper 的官方帮助文档 例子和现象 从 ReSharper 的提示中,我们可以跳转到官方帮助文档 Code Inspection: Delegate subtractions...ReSharper 同时还给出另一个例子,说明委托的减法顺序也可能非预期: s = a + b + a; (s - a)(); // AB 它会从尾部减起,而这一点也容易被大家忽视...本文会经常更新,请阅读原文: https://walterlv.com/post/delegate-subtraction-has-unpredictable-result.html ,以避免陈旧错误知识的误导
ReSharper 已经自带了一份非常好用的代码片段工具,不过使用 ReSharper 创建出来的代码片段只能用在 ReSharper 插件中。...设置类型占位符 如果我们只是这样创建一个代码片段,而目标代码可能没有引用 System.Diagnostics 命名空间,那么插入完之后手动引用这个命名空间体验可不好。...那么如何让 Debug 类可以带命名空间地插入呢? 我们需要将 Debug 也设置成占位符。 但是这是可以自动生成的占位符,不需要用户输入,于是我们将其设置为不可编辑。...使用代码片段 如果你前面使用了默认的保存路径,那么现在直接就可以开始使用了。...本文会经常更新,请阅读原文: https://blog.walterlv.com/post/create-code-snippet-for-visual-studio.html ,以避免陈旧错误知识的误导
新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studio 2015速递(3)——ASP.NET 新特性 前文提到过一个神器叫Resharper...去年微软放出Roslyn的时候,微软就曾经放出过一个“尝鲜”版的VS编辑增强功能,恰恰就是重构(reflector),话说这个对控件开发太有用了,但是之前只有纠结的Resharper才有的,虽然它也不是很完整...点亮的小黄灯泡可以展开一个快速动作的入口(看着看着总觉得像是从Resharper搬过来的,哈哈),当代码有为题的时候,提供各种修复建议。...如今,VS添加了对附加调试的编辑执行的支持,这对于很多web开发来说非常有用,举个例子,你在页面里用了C1 Studio for .NET的web控件,放到IIS上了,发现问题可能是少设置了某个属性,现在你只需要附加调试...对于WPF的性能调优来说,很及时,比更早期Performance Tool好了不止一点点。 ?
实时可视化树和实时属性资源管理器 开发者可以使用“实时可视化树”和“实时属性资源管理器”实时地查看正在运行的XAML代码。...ReSharper 大名鼎鼎的ReSharper相信不用多介绍,不过要用上实在太花钱(授权和电脑配置)。...除了可以强化C#代码体验,ReSharper对XAML也有很多增强功能,包括: XAML的错误提示 增强的XAML智能感知 导航和查找XAML元素 XAML代码重构 更详尽的功能请看 XAML Editing...Tools - Features ReSharper ?...如果自己开发的WPF程序使用了Microsoft UI Automation,这将是一个十分重要的工具。
存量的数据几乎耗用了上百G的内存,再加上它们在每个时刻都在不断地变化,所以每时每刻都无数的对象被创建出来(添加+修改),同时无数现有的对象被“废弃”(删除+修改)。...文章主要介绍了以下内容: TimerQueue是如何与操作系统的定时器进行交互的,包括注册、取消、设置和回调等细节。...这些内存区域都有各自的特点和用途,可以帮助我们更好地管理程序内存和资源的使用。 因此,熟知堆和栈的运行机制,对提升系统性能和稳定性至关重要。...-2023-2-release/ ReSharper 2023.2 已发布。...日文文档解释中的错误。