毫无疑问,安装Resharper时VS2008的启动时间会增加一倍以上.
有没有人找到任何方法来减轻Resharper的惩罚至少一点点.
平台:带有Resharper 4.1,.NET 3.5的Visual Studio 2008 SP1
我有一个静态方法的类,GetProperty<T>它懒惰地返回一个属性值.
private static T GetProperty<T>(T backingField, Func<T> factory)
where T : class
{
if (backingField == null)
backingField = factory();
return backingField;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用上述方法返回属性时,我收到两条警告,指出未分配私有支持字段.但是只有在需要时才会分配它们.

这个警告是否可以忽略?
- 或者 -
我的加载财产是否存在缺陷?
好吧,我想命名空间必须与它们的嵌套文件夹相同吗?我不断收到错误,说命名空间应该是xxx.yyy.zzz.
例:
Folder1
Folder2
MyControl.cs
Run Code Online (Sandbox Code Playgroud)
我在其中有一个名称空间,定义为:
namespace CustomControls
{
...
}
Run Code Online (Sandbox Code Playgroud)
所以编译器抱怨它必须是名称空间Folder1.Folder2
那么与文件结构和命名空间有直接关系吗?你被迫与这些关系密切吗?
在xml文档中的以下代码中,方法参数中的参数名称与xml文档中的参数名称不匹配.有没有办法自动更正xml文档签名或resharper中提供的任何功能来自动更正xml文档.
#region Get Images
/// <summary>
/// Get Images
/// </summary>
/// <param name="par1"></param>
/// <param name="par2"></param>
/// <returns></returns>
public Collection<UserImage> GetImages()
{
return GetImages("");
}
/// <summary>
/// Get Images
/// </summary>
/// <param name="par1"></param>
/// <param name="par2"></param>
/// <returns></returns>
public Collection<UserImage> GetImages(string imageType)
{
return GetImages(0, imageType);
}
/// <summary>
/// Get Images
/// </summary>
/// <param name="par1"></param>
/// <param name="par2"></param>
/// <returns></returns>
public Collection<UserImage> GetImages(int imageId)
{
return GetImages(imageId, "");
}
/// <summary>
/// Get Images
/// …Run Code Online (Sandbox Code Playgroud) 我想知道为什么R#提供带有"class"后缀的变量名称?当我创建一个类的实例时,为什么我会为我的实例添加一个类后缀?有没有理由有这样的事情:
BusinessClass myBusinessClass = new BusinessClass();
Run Code Online (Sandbox Code Playgroud)
谢谢.
public virtual IAsyncResult BeginProcessRequest(RequestContext context, AsyncCallback callback, object state)
{
return this.process.BeginInvoke(**ref context**, callback, state);
}
public virtual RequestContext EndProcessRequest(IAsyncResult result)
{
RequestContext context = null;
this.process.EndInvoke(**ref context**, result);
return context;
}
Run Code Online (Sandbox Code Playgroud)
上面的两种方法在我的项目中引起了一些警告.我不确定我理解他们.警告是:
参数为'ref',而参数声明为'value'
并且警告的位置是Invoke调用中的第一个参数(上下文).有没有人看到这个有什么问题或者对这个问题有一些建议?
那些双星号是警告的原因.我在编辑器上点击"粗体",它就这样做了,所以我就去了.星号不在我的代码中.
我在VS2010中编写c#并且已经测试了一个名为ReSharper的插件.根据我的经验,我觉得它可以清理代码并简化不必要的逻辑.然而,它在我的代码中找到的主要问题之一是我在初始化变量时.
Resparper建议初始化机智"var"
int i = 0 ----> var i = 0
or...
MyClass1 MyClass = new MyClass(1)
Run Code Online (Sandbox Code Playgroud)
我一直认为使用var有一个轻微的开销,似乎很懒惰或松散的类型(虽然我确实它有一些优势).我一直在努力寻找是否有充分的理由来初始化这样的变量.Reshaper说使用var是一个有争议的问题,但它有很好的扩展用于初始化.有谁知道这可能会或不会是什么?
我们最近遇到了一个问题,我们调用字典来检索值,期望密钥存在.它没有导致进程中断.
ReSharper是否具有检查此功能的功能,就像我听说它可以用于空对象一样?
这是一个支持我所说的内容的例子:
Dictionary<String, Entity> allEntities =
new Dictionary<String, Entity>(SringComparer.OrdinalIgnoreCase);
allEntities.AddMany(db.GetAllEntities());
Entity thisEntity = allEntities[entityID];
// <-- error here as EntityID isn't in all entities...
Run Code Online (Sandbox Code Playgroud)
我希望ReSharper可以说我没有像这样检查字典:
if (allEntities.ContainsKey(entityID))
...
Run Code Online (Sandbox Code Playgroud)
作为一个仅供参考,我没有ReSharper,但这将是添加到业务案例中以便为所有开发人员提供它的另一件事.
resharper ×10
c# ×7
asp.net ×1
asp.net-core ×1
lazy-loading ×1
naming ×1
performance ×1
ref ×1
variables ×1
warnings ×1
xml-comments ×1