自动封装字段重构,'使用字段'之间的差异和'使用属性'?

时间:2017-05-03 09:42:33

标签: c# visual-studio

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

  1. 使用属性
  2. 仍然使用字段
  3. Screenshoot of the menu in French.

    我在基础课上测试了不同的选项:

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

    但两个选项都给出了相同的结果:

    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; }
    }
    

    为什么存在这些选项?差异在哪里(代码生成,"用法" * )?


    Disclamer:

    • 该剧本是法国VS.因此,选项翻译由我制作,实际选项文本可能不同。
    • 我知道田地和财产之间的区别。我检查了很多话题,看看它是不是一个骗局。我本可以错过一个。
    • * ,找不到这个的良好信息:"以你使用它的方式"。但在这种情况下,不是字段和属性之间的使用差异,而是菜单选项。

1 个答案:

答案 0 :(得分:3)

在英语中,选项称为:

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

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

因此,如果在其他地方你有这个代码:

var test = new Test_EncapsulateFieldRefactoring_Property();
test.name = "Hello";

您会发现第一个选项会将test.name更新为新的test.Name属性,但第二个选项不会。{/ p>