c# - 为什么 ReSharper 在将属性转换为自动属性时需要扫描所有文件?

标签 c# .net asp.net resharper automatic-properties

访问具有支持字段的属性之间有什么区别吗

    private int _id;
    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }

与自动属性相比?

public int Id { get; set; }

我问的原因是,当让 ReSharper 将属性转换为自动属性时,它似乎会扫描我的整个解决方案,或者至少扫描所有 aspx 文件。

我看不出有任何理由说明两者在课外应该有任何区别。有吗?

最佳答案

编译器自动生成自动属性的支持字段,所以不,应该没有任何区别。

ReSharper 正在扫描所有文件,因为如果您定义了一个 Partial 类,它可能会使用支持字段而不是公共(public)属性,即使代码存在于物理上不同的文件中。

例如:

// MyClass.cs
public partial class MyClass
{
    int _id;
    public int ID { get { return _id; } set { _id = value; } }
    public MyClass(int identifier)
    {
        ID = identifier;
    }
}

// MyClass2.cs
public partial class MyClass
{
    public void ChangeID(int newID) 
    {
        _id = newID;
    }
}

ReSharper 必须扫描所有文件,因为它无法知道分部类的定义位置。

关于c# - 为什么 ReSharper 在将属性转换为自动属性时需要扫描所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196943/

相关文章:

c++ - app.config Visual Studio 创建

asp.net - 对于这个 VS 2013 异常,我可以/应该做些什么吗?

javascript - 如何在另一个aspx页面中通过URL获取值

c# - 在 .NET 中用文本 block 初始化字符串的语法是什么?

c# - 遍历 ICollection

asp.net - 如何在gridview中绑定(bind)数据表中的复选框值

c# - 使用 Url Rewriting Net 删除尾部正斜杠

c# - 如何使用 C# 从 ASP.Net 中的数据库中获取最新记录?

c# - 无法写入 SharePoint 2010 下的 ULS 日志

c# - 寻找最佳线环绕宽度以最大化垂直相同值邻居的数量