Tag: resharper

Visual Studio:默认情况下如何使用显式类型

我们有Visual studio(2013)和resharper(V9),目前默认情况下,在创建新变量时,我们始终将第一个提案设为var 。 我们对这种var有点过敏(这是我们的意见,我可以接受其他的不一样,但这不是重点)。 我们可以使用键盘箭头选择显式类型,但我们希望默认情况下使用它。 我不确定该默认值是来自Resharper还是来自Visual Studio,但有没有人知道如何使用显式实现而不是var? 这是我们可以直接为整个团队做的事吗?

ReSharper 10测试运行器未能找到从外部文件引用的AppSettings

我最近升级到ReSharper 10.0.1 for Visual Studio 2013.我的unit testing项目包含一个app.config文件,其中包含: 引用的配置文件设置为“始终复制”到输出目录。 我validation了测试是从项目文件夹中的\ bin \ debug运行的,并且两个引用的配置文件都正确地复制到该文件夹​​。 但是,在运行测试时,我发现: ConfigurationManager.AppSettings不包含AppSettings.local.config中的任何键。 ConfigurationManager.AppSettings DOES包含otherSetting 。 ConfigurationManager.ConnectionStrings包含来自ConnectionStrings.local.config的所有键。 在中使用configSource属性而不是file也不起作用。 我管理配置文件的方式在很长一段时间内没有改变,并且一直运行良好。 问题肯定与ReSharper 10的升级相吻合。在ReSharper的unit testing设置中,我禁用了“影子复制程序集”和“使用单独的AppDomain”,并且“运行测试自”设置为项目输出文件夹。 我在更改这些设置后多次重启VS. 这听起来像是一个可能的ReSharper错误,还是我可能会遗漏一些明显的东西? 更新: 我已经降级到ReSharper 9.2,我的困境已经消失了。 所以我只能得出结论,这是一个ReSharper 10问题。 但是我不确定它是否是一个真正的错误(肯定是这样),或者如果我错过了某个地方的新设置,那么任何见解仍然会受到赞赏。

什么时候generics参数永远不会为空

在通用的GetHashCode(T foo)方法中,我检查foo是否为null 。 然而,我偶然发现了一个奇怪的Resharper警告。 在下面的代码中, foo永远不会为null吗? private class FooComparer : IEqualityComparer where T: Foo { public int GetHashCode(T foo) { // resharper warning: “Expression is always false” if (Object.ReferenceEquals(null,foo)) return 0; // … calculate hash } } 但据我所知,以下是完全合法的: Foo foo = null; var fooComparer = new FooComparer(); int hash = fooComparer.GetHashCode(foo);

代码合同确保ReSharper ExternalAnnotations

有谁知道如何在ReSharper ExternalAnnotations中添加代码合同保证? 它不在最后的v7.1.3中,也不在最新的v8 EAP中,也不存在于任何浮动的自定义xmls中。 具体来说,它应检测方法是否不返回null: Contract.Ensures(Contract.Result() != null);

ReSharper建议使用var – 它可以做相反的事吗?

Resharper建议我使用var-keyword。 不幸的是,我的新雇主根本不使用var-keyword。 这就是我遇到麻烦的原因,因为我习惯使用var-keyword。 是否有可能让resharper做相反的事情? 所以,每次我使用var关键字时它都会警告我,并建议我明确声明变量? 提前致谢! 编辑:\ 我不想关闭警告或类似的东西,我想转动那个环境,所以每当我使用var时我都会收到警告。

仅从特定的子类中查找inheritance方法的用法?

我有一个超类,它由许多子类inheritance。 我想在这个超类中找到对某个方法的所有调用,该方法来自特定inheritance类的实例。 这可能在VS2012(使用Resharper 7.1)吗? 代码示例: public class Super { public void foo(Arg a) { … } } public class Sub1 : Super { … } public class Sub2 : Super { … } public class SomeClass { public void Run() { … var sub1 = new Sub1(); sub1.foo(a); var sub2 = new Sub2(); sub2.foo(b); } […]

“iPhone”的Resharper命名exception

是否可以为特定单词的Resharper命名约定添加例外? 特别是,我希望能够创建一个枚举值“iPhone”,即使我通常更喜欢PascalCase的枚举值。 我检查了Resharper的命名样式文档 ,但没有看到任何添加自定义exception的方法。 我也尝试使用自定义缩写列表,但这仅适用于所有大写字母。

Resharper在if语句旁边移动顶部括号。 如何在新线上?

我的Resharper 8是在末端括号上自动格式化。 顶部大括号移动到IF语句行的末尾。 我怎样才能将它格式化到下一行。 开始陈述 if (condition) { var x = new foo(); } 当底部支架被移除并重新输入时,这就是结果。 顶部支架移动到上面的线的末端。 if (condition) { var x = new foo(); } 期望的结果是初始启动语句。 如何更改R#8中的选项以解决此问题? 我尝试在C# / Formatting / Braces layout选项中更改选项。

如何阻止ReSharper在指定的变量和链式方法调用之间插入不必要的换行符

我有一个类有一些返回this方法,这样我可以将调用链接在一起: public class Person { public string FirstName { get; set; } public string LastName { get; set; } public Person WithFirstName(string firstName) { FirstName = firstName; return this; } public Person WithLastName(string lastName) { LastName = lastName; return this; } } 但是,当我将足够的方法链接在一起以便在ReSharper中设置Right margin (columns) ,表达式的格式有点时髦。 var john = new Person().WithFirstName(“John”) .WithLastName(“Smith”) .WithLastName(“Smith”) .WithLastName(“Smith”) .WithLastName(“Smith”); […]

Resharper 9文件布局:按访问修饰符排序时无法定义排序顺序?

安装R#9.0后,我的8.2自定义文件布局不再起作用了。 我使用9.0中的新版布局设计器重新创建了相同的模式。 我无法重现的部分是使用访问修饰符的属性的详细排序定义: 9.0之前看起来像这样: […] […] …导致属性按定义排序 – 特别是: private ! 在9.0中使用新的Designer时,生成的XAML如下: […] […] …仍然使用访问修饰符对成员进行排序, 但使用了一些默认的排序规范 。 设计人员不允许指定任何其他属性并手动编辑XAML,因为在9.0之前会产生错误。 在R#9.0中是否有任何方法可以控制像这样的public , private等成员的顺序? 顺便说一句。 对于像Kind这样的其他排序规范也存在同样的问题:不可能再指定例如property应该在method之前等。