.jpg)
在 C# 中,是什么使字段与属性不同,何时应使用字段而不是属性?

网友回答:
面向对象的编程原则说,一个类的内部工作应该对外界隐藏起来。如果你公开一个字段,你实质上是公开了类的内部实现。因此,我们将字段包装为属性(或Java中的方法),使我们能够更改实现而不会破坏依赖于我们的代码。看到我们可以将逻辑放在属性中,也允许我们在需要时执行验证逻辑等。
C# 3 具有可能令人困惑的自属性概念。这允许我们简单地定义属性,C#3 编译器将为我们生成私有字段。
public class Person
{
private string _name;
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public int Age{get;set;} //AutoProperty generates private field for us
}

网友回答:
属性公开字段。字段应该(几乎总是)对类保持私有,并通过 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指出,属性不需要封装字段,它们可以对其他字段进行计算,或者用于其他目的。
@GSS指出,您还可以在访问属性时执行其他逻辑,例如验证,这是另一个有用的功能。

网友回答:
一个重要的区别是接口可以具有属性,但不能具有字段。对我来说,这强调了属性应该用于定义类的公共接口,而字段应该用于类的私有内部工作。通常,我很少创建公共字段,同样也很少创建非公共属性。
模板简介:该模板名称为【在 C# 中,是什么使字段与属性不同,何时应使用字段而不是属性?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。