自动封装字段重构,“使用字段”和“使用属性”之间的区别?

Dra*_*rop 1 c# visual-studio

在Visual Studio 2017上,使用自动封装字段重构工具时有两个选项:

  1. 使用财产
  2. 仍在使用领域

法语菜单的屏幕截图。

我已经在基础课上测试了其他选项:

public class Test_EncapsulateFieldRefactoring_Property
{
    public int id;
    public string name;
}
Run Code Online (Sandbox Code Playgroud)

但是两种选择都给出了相同的结果:

public class Test_EncapsulateFieldRefactoring_Property
{
    private int id;
    private string name;

    public int Id { get => id; set => id = value; }
    public string Name { get => name; set => name = value; }
}
Run Code Online (Sandbox Code Playgroud)

为什么存在这些选择?区别在哪里(在生成的代码中,“用法” *)?



免责声明:

  • 屏幕截图是法国VS上的。因此,选项翻译由我完成,实际选项文本可能有所不同。
  • 我知道字段和属性之间的区别。我检查了很多主题,看是否不是骗子。我可能会错过一个。
  • *,找不到适合的翻译:“使用方式”。但是在这种情况下,as字段和property之间的用法差异并不大,而在菜单选项中。

Ale*_*ren 5

用英语来说,这些选项称为:

  • 封装字段(和使用属性)
  • 封装字段(但仍使用字段)

不同之处在于它对字段用法的作用。第一个选项将更新该字段的所有用法,以使用它创建的新属性。第二个选项不会更改代码中其他位置的字段的现有用法。

因此,如果您在其他地方有此代码:

var test = new Test_EncapsulateFieldRefactoring_Property();
test.name = "Hello";
Run Code Online (Sandbox Code Playgroud)

您会发现第一个选项更新test.name为新test.Name属性,而第二个选项则没有。