标签: resharper

如何使用Visual Studio(和/或ReSharper)从类字段生成构造函数?

我已经习惯了许多Java IDE(Eclipse,Netbeans,IntelliJ),为您提供了一个命令,可以根据类中的字段为类生成默认构造函数.

例如:

public class Example
{
    public decimal MyNumber { get; set; }
    public string Description { get; set; }
    public int SomeInteger { get; set; }

    // ??? This is what I want generated ???
    public Example(decimal myNumber, string description, int someInteger)
    {
        MyNumber = myNumber;
        Description = description;
        SomeInteger = someInteger;
    }
}
Run Code Online (Sandbox Code Playgroud)

在大多数OOP语言中,让构造函数填充对象的所有字段是一项常见任务,我假设有一些方法可以节省在C#中编写此样板代码的时间.我是C#世界的新手,所以我想知道我是否遗漏了一些关于语言的基本信息?Visual Studio中有一些明显的选项吗?

c# resharper code-generation visual-studio-2010 visual-studio

152
推荐指数
8
解决办法
13万
查看次数

我为什么要使用var而不是类型?

可能重复:
ReSharper和var

在我安装了ReSharper后,它要求(通过警告)我尽可能使用var,例如

UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t;
Run Code Online (Sandbox Code Playgroud)

ReSharper想把它变成

var ue = (UnhandledExceptionEventArgs) t;
Run Code Online (Sandbox Code Playgroud)

我更喜欢第一个版本,有没有理由更喜欢var?更好的性能?什么?或者它只是一种代码风格?

.net c# resharper coding-style var

149
推荐指数
4
解决办法
12万
查看次数

反转"if"是否会提高性能?

我一直在使用ReSharper一段时间,有时它暗示我反转了if.我想一个例子可以更好地解释我的情况:

public void myfunction(int exampleParam){
    if(exampleParam > 0){
        //Do something with form controls for example.
    }
}
Run Code Online (Sandbox Code Playgroud)

现在ReSharper建议我将其反转if为:

public void myfunction(int exampleParam){
    if(exampleParam <= 0)
        return;
    //Do something with form controls for example
}
Run Code Online (Sandbox Code Playgroud)

这会以某种方式"改善"性能吗?还是仅仅是审美?

c# resharper if-statement

147
推荐指数
0
解决办法
7842
查看次数

为什么'397'用于ReSharper GetHashCode覆盖?

像许多人一样,我使用ReSharper来加速开发过程.当您使用它来覆盖类的相等成员时,它为GetHashCode()生成的代码生成如下所示:

    public override int GetHashCode()
    {
        unchecked
        {
            int result = (Key != null ? Key.GetHashCode() : 0);
            result = (result * 397) ^ (EditableProperty != null ? EditableProperty.GetHashCode() : 0);
            result = (result * 397) ^ ObjectId;
            return result;
        }
    }
Run Code Online (Sandbox Code Playgroud)

当然我有一些自己的成员,但我想知道的是为什么397?

  • 编辑:所以我的问题会更好措辞,因为它是一个特殊的关于397素数除了它是素数?

resharper hash hash-code-uniqueness

145
推荐指数
3
解决办法
2万
查看次数

ReSharper缩写列表:我在哪里可以修改它?

我正在使用ReSharper 4.5,当我将显式属性转换为自动属性时经常发生的是,我会不小心选择"将XX添加到缩写列表".

即:我想将CustomerID转换为autoproperty,但由于快速的蝴蝶结,我会不小心将"ID"添加到缩写列表中,这是我不想做的.(我希望命名规则使用"Id"而不是"ID").

在哪里可以找到并修改ReSharper 4.5中的自定义缩写列表?

resharper

141
推荐指数
7
解决办法
2万
查看次数

在ReSharper中禁用C#6.0支持

在使用ReSharper时,它建议"为此项目启用C#6.0支持".我愚蠢地点击它,现在正如所宣传的那样,它给了我C#6.0的建议 - 然后给我错误,因为我在这个项目中没有使用C#6.0.

如何禁用C#6.0支持,将其恢复到以前的状态?(最好不必单独忽略具体建议)

c# resharper

140
推荐指数
2
解决办法
1万
查看次数

禁用,但不能卸载Resharper 4.x以后

有关如何禁用但不卸载Resharper 4.x或更高版本的任何想法?

resharper add-in visual-studio

131
推荐指数
5
解决办法
4万
查看次数

用于放置using指令的Visual Studio或Resharper功能

我喜欢将我的using指令放在当前命名空间内,而不是在外面,因为VS和Resharper默认放置它们.

有没有人知道一个宏/标准功能,它排除/删除未使用的using指令并将它们放在当前的命名空间中?

resharper using-directives visual-studio

120
推荐指数
4
解决办法
3万
查看次数

ReSharper/C#中的"委托减法有不可预测的结果"?

使用myDelegate -= eventHandlerReSharper(版本6)时出现问题:

委托减法具有不可预测的结果

JetBrains在这里解释了这背后的理性.这个解释很有意义,在阅读之后,我怀疑我-对代表的所有用处.

那么如何,

  • 我可以写一个非自动事件而不会让ReSharper脾气暴躁吗?
  • 或者,是否有更好和/或"正确"的方式来实现这一点?
  • 或者,我可以忽略ReSharper吗?

这是简化的代码:

public delegate void MyHandler (object sender);

MyHandler _myEvent;

public event MyHandler MyEvent
{
    add
    {
        _myEvent += value;
        DoSomethingElse();
    }
    remove
    {
        _myEvent -= value; // <-- ReSharper warning here
    }
}
Run Code Online (Sandbox Code Playgroud)

c# resharper events delegates compiler-warnings

120
推荐指数
2
解决办法
3万
查看次数

Resharper-查找所有未使用的类

我知道如何通过右键单击文件并选择"查找用法"选项来查找单个文件的未使用引用.有什么办法可以查看或获取项目中所有未使用的类或文件的列表吗?

c# resharper

118
推荐指数
2
解决办法
4万
查看次数