我已经习惯了许多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
可能重复:
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?更好的性能?什么?或者它只是一种代码风格?
我一直在使用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)
这会以某种方式"改善"性能吗?还是仅仅是审美?
像许多人一样,我使用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?
我正在使用ReSharper 4.5,当我将显式属性转换为自动属性时经常发生的是,我会不小心选择"将XX添加到缩写列表".
即:我想将CustomerID转换为autoproperty,但由于快速的蝴蝶结,我会不小心将"ID"添加到缩写列表中,这是我不想做的.(我希望命名规则使用"Id"而不是"ID").
在哪里可以找到并修改ReSharper 4.5中的自定义缩写列表?
在使用ReSharper时,它建议"为此项目启用C#6.0支持".我愚蠢地点击它,现在正如所宣传的那样,它给了我C#6.0的建议 - 然后给我错误,因为我在这个项目中没有使用C#6.0.
如何禁用C#6.0支持,将其恢复到以前的状态?(最好不必单独忽略具体建议)
有关如何禁用但不卸载Resharper 4.x或更高版本的任何想法?
我喜欢将我的using指令放在当前命名空间内,而不是在外面,因为VS和Resharper默认放置它们.
有没有人知道一个宏/标准功能,它排除/删除未使用的using指令并将它们放在当前的命名空间中?
使用myDelegate -= eventHandlerReSharper(版本6)时出现问题:
委托减法具有不可预测的结果
JetBrains在这里解释了这背后的理性.这个解释很有意义,在阅读之后,我怀疑我-对代表的所有用处.
那么如何,
这是简化的代码:
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) 我知道如何通过右键单击文件并选择"查找用法"选项来查找单个文件的未使用引用.有什么办法可以查看或获取项目中所有未使用的类或文件的列表吗?
resharper ×10
c# ×6
.net ×1
add-in ×1
coding-style ×1
delegates ×1
events ×1
hash ×1
if-statement ×1
var ×1