Visual Studio 2017,在使用自动封装字段重构工具时有两个选项:
我在基础课上测试了不同的选项:
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; }
}
为什么存在这些选项?差异在哪里(代码生成,"用法" * )?
答案 0 :(得分:3)
在英语中,选项称为:
区别在于它对该字段的用法的作用。第一个选项将更新该字段的所有用法以使用它创建的新属性。第二个选项不会更改代码中其他位置的现有用法。
因此,如果在其他地方你有这个代码:
var test = new Test_EncapsulateFieldRefactoring_Property();
test.name = "Hello";
您会发现第一个选项会将test.name
更新为新的test.Name
属性,但第二个选项不会。{/ p>