gpt4 book ai didi

c# - 字段和属性有什么区别?

转载 作者:行者123 更新时间:2023-11-30 18:22:15 26 4
gpt4 key购买 nike

在 C# 中,什么使字段与属性不同,什么时候应该使用字段而不是属性?

最佳答案

属性公开字段。字段应该(几乎总是)对类保持私有(private),并通过 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 指出您还可以执行其他逻辑,例如在访问属性时进行验证,这是另一个有用的功能。

关于c# - 字段和属性有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com