Questions tagged «resharper»

ReSharper是JetBrains的重构和生产力扩展,自2003年以来扩展了Microsoft Visual Studio版本的本机功能。


7
处理可能的IEnumerable多个枚举的警告
因此在我的代码中需要使用IEnumerable<>几次,从而得到“可能的多重枚举IEnumerable” 的Resharper错误。 样例代码: public List<object> Foo(IEnumerable<object> objects) { if (objects == null || !objects.Any()) throw new ArgumentException(); var firstObject = objects.First(); var list = DoSomeThing(firstObject); var secondList = DoSomeThingElse(objects); list.AddRange(secondList); return list; } 我可以将objects参数更改为List,然后避免可能的多重枚举,但随后我没有得到可以处理的最高对象。 另一件事,我可以做的就是将转换IEnumerable到List在方法的开头: public List<object> Foo(IEnumerable<object> objects) { var objectList = objects.ToList(); // ... } 但是,这很尴尬。 在这种情况下您会做什么?


3
访问修改后的闭包
string [] files = new string[2]; files[0] = "ThinkFarAhead.Example.Settings.Configuration_Local.xml"; files[1] = "ThinkFarAhead.Example.Settings.Configuration_Global.xml"; //Resharper complains this is an "access to modified closure" for (int i = 0; i < files.Length; i++ ) { // Resharper disable AccessToModifiedClosure if(Array.Exists(Assembly.GetExecutingAssembly().GetManifestResourceNames(), delegate(string name) { return name.Equals(files[i]); })) return Assembly.GetExecutingAssembly().GetManifestResourceStream(files[i]); // ReSharper restore AccessToModifiedClosure } …
316 c#  resharper  closures 

5
为什么ReSharper告诉我“隐式捕获关闭”?
我有以下代码: public double CalculateDailyProjectPullForceMax(DateTime date, string start = null, string end = null) { Log("Calculating Daily Pull Force Max..."); var pullForceList = start == null ? _pullForce.Where((t, i) => _date[i] == date).ToList() // implicitly captured closure: end, start : _pullForce.Where( (t, i) => _date[i] == date && DateTime.Compare(_time[i], DateTime.Parse(start)) > …
296 c#  linq  resharper 

8
LINQ:不是任何人都不是所有人
我经常想检查一个提供的值是否与列表中的一个匹配(例如,在验证时): if (!acceptedValues.Any(v => v == someValue)) { // exception logic } 最近,我注意到ReSharper要求我将这些查询简化为: if (acceptedValues.All(v => v != someValue)) { // exception logic } 显然,这在逻辑上是相同的,也许可读性更高(如果您完成了许多数学运算),我的问题是:这会导致性能下降吗? 感觉像是应该的(即.Any()听起来像是短路,而.All()听起来像不是),但是我没有任何证据可以证明这一点。是否有人对查询是否可以解决相同的问题或ReSharper是否使我误入歧途有更深入的了解?
272 c#  .net  performance  linq  resharper 

25
反转“ if”语句以减少嵌套
例如,当我在代码上运行ReSharper时: if (some condition) { Some code... } ReSharper给了我以上警告(反转“ if”语句以减少嵌套),并建议进行以下更正: if (!some condition) return; Some code... 我想了解为什么会更好。我一直以为在方法中间使用“返回”是有问题的,有点像“转到”。
272 c#  resharper 

30
即使项目生成,Visual Studio也会显示错误
我在C#解决方案上的Visual Studio遇到问题。它显示完全随机的错误,但项目已建立。现在,我有33个有错误的文件,并且所有文件中都能看到红色的波浪线。 我尝试清洁/重建解决方案,关闭Visual Studio,甚至重新启动计算机。即使在Visual Studio中,即使编译器有错误,我也要确保执行调试运行中描述的步骤。我可以修改.cs文件,然后看到解决方案中的更改。 有谁知道为什么要这么做吗?

4
ReSharper警告:“通用类型的静态字段”
public class EnumRouteConstraint<T> : IRouteConstraint where T : struct { private static readonly Lazy<HashSet<string>> _enumNames; // <-- static EnumRouteConstraint() { if (!typeof(T).IsEnum) { throw new ArgumentException( Resources.Error.EnumRouteConstraint.FormatWith(typeof(T).FullName)); } string[] names = Enum.GetNames(typeof(T)); _enumNames = new Lazy<HashSet<string>>(() => new HashSet<string> ( names.Select(name => name), StringComparer.InvariantCultureIgnoreCase )); } public bool Match(HttpContextBase httpContext, …


21
键盘快捷方式在安装了Resharper的Visual Studio中不处于活动状态
我安装了Visual Studio 2012 + Resharper 7.1.1000.900 + StyleCop 4.7.44。 问题是自从安装Resharper以来,没有快捷方式处于活动状态。 例如:我可以通过“重构>重命名”来重命名。但是shorcut Ctrl+ R什么也没做。 我已经在“ Resharper>选项>环境>键盘和菜单” 中将Resharper键盘方案设置为“ Visual Studio” 有什么方法可以激活快捷方式吗?谢谢。

2
我在哪里标记lambda表达式异步?
我有以下代码: private async void ContextMenuForGroupRightTapped(object sender, RightTappedRoutedEventArgs args) { CheckBox ckbx = null; if (sender is CheckBox) { ckbx = sender as CheckBox; } if (null == ckbx) { return; } string groupName = ckbx.Content.ToString(); var contextMenu = new PopupMenu(); // Add a command to edit the current Group contextMenu.Commands.Add(new …

23
ReSharper为什么要对所有内容都使用'var'?
我刚刚开始在Visual Studio中使用ReSharper(在关于SO的许多建议之后)。为了进行试验,我打开了一个最近的ASP.NET MVC项目。我注意到它建议的第一批也是最常见的事情之一是将我的大部分/所有显式声明var改为。例如: //From This: MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); //To This: var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); 等,即使采用简单的类型,如int,bool等 为什么建议这样做?我不是来自计算机科学或.NET背景的人,最近才“涉足” .NET开发,所以我真的很想了解正在发生的事情以及它是否有益。

15
如何使ReSharper重新评估其装配参考突出显示
我正在创建一个棱镜项目模板,该模板效果很好。但是,在使用模板创建一个项目后,其中一些文件如下所示: 尽管出现了,但一切都很好。 如果执行全部重建,则可以看到该解决方案的构建没有错误: 但是,所有重建操作都无法消除编辑器窗口中显示的“错误”。(请注意,实际错误窗口不会显示任何错误。) 我可以清理,重建,关闭和打开文件,但不能解决突出显示问题。 但是,如果我关闭解决方案并重新打开它,一切都很好: 我的问题: 理想情况下,我的模板或IWizard可以通过某种方式告诉ReSharper重新加载突出显示的引用。 我知道我可以先关闭ReSharper 然后再打开,这样可以解决问题,但是我不愿意这样做。 是否有一个ReSharper命令可以刷新此内容?

5
无法在Visual Studio中键入
我无法在Visual Studio 2013中编辑项目中的任何文件。它仅在一个项目中发生。如果打开其他项目,则可以正常输入,但是一旦回到问题项目,则无法在编辑器窗口中输入。不确定是否重要,但是给我的项目出现了问题,我们正在使用SVN。其他项目只是计算机上的本地项目。我已经重新启动了Visual Stuido,重新启动了计算机,但仍然无法编辑文件。有任何想法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.