何时以及为何使用get set?

时间:2015-02-18 01:37:18

标签: c#

具有或不具有{get; set;}的类中的变量定义之间的区别是什么。例如,如果我声明一个像这样的变量

public string VariableName { get; set; }

public string VariableName;

有什么区别,如果没有区别,为什么以及何时使用get set?

1 个答案:

答案 0 :(得分:1)

在主叫方,属性和字段生成不同的代码。可以直接访问字段,但属性会调用类中的函数来获取和设置值。如果您的类与调用者位于一个单独的DLL中,并且您以后想要将其更改为属性,因为您不再存储实际值,但仍可以从其他数据派生它,或者您希望在触发其他更改或通知时它是设置的,或者你想在检索或更改有效或任何其他原因周围提供某种锁定,你必须重新编译调用DLL才能使它工作。如果使用属性,则可以更改getter和/或setter的实现,并且调用代码无需重新编译即可工作。