字段和属性之间有什么区别?

在C#中,是什么使字段不同于属性,以及何时应使用字段代替属性?

回答:

属性公开字段。字段(几乎总是)应该对类保持私有,并可以通过get和set属性对其进行访问。属性提供了一个抽象级别,允许您更改字段,而又不影响使用类的事物访问字段的外部方式。

public class MyClass

{

// this is a field. It is private to your class and stores the actual data.

private string _myField;

// this is a property. When accessed it uses the underlying field,

// but only exposes the contract, which will not be affected by the underlying field

public string MyProperty

{

get

{

return _myField;

}

set

{

_myField = value;

}

}

// This is an AutoProperty (C# 3.0 and higher) - which is a shorthand syntax

// used to generate a private field for you

public int AnotherProperty{get;set;}

}

@Kent指出,不需要Properties来封装字段,它们可以对其他字段进行计算或用于其他目的。

@GSS指出,当访问属性时,您还可以执行其他逻辑,例如验证,这是另一个有用的功能。

以上是 字段和属性之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/428690.html

回到顶部