当前位置:  开发笔记 > 编程语言 > 正文

如果有属性,为什么我们需要字段?

如何解决《如果有属性,为什么我们需要字段?》经验,为你挑选了1个好方法。

如果属性可以存储数据(如字段那样),为什么我们仍然需要字段

比如我有这个班,

public class Music
{
    public Music() { }
    public float musicBPM { get; set; } 
    public void addBPM()
    {
        this.muscBPM +=10;
    }
}

它仍然有效,因为我有一个私人领域,并改变其价值,对吗?

那么,如果您可以使用该属性,那么对于现场的迫切需求是什么?



1> dasblinkenli..:

虽然自动属性模糊了相当多的区别,但是字段和属性之间存在根本区别:

字段是能够存储东西的数据成员,

属性是一种方法或一对方法,通过编译器的帮助,可以像使用它们一样使用它们.

换句话说,当你写作

public float musicBPM { get; set; } 

编译器创建这样的东西:

private float musicBPM_property;
public float musicBPM {
    get { return musicBPM_property; }
    set { musicBPM_property = value; }
}

当你创建一个自动属性时,该字段仍然存在,但编译器巧妙地将它隐藏起来.

这就是为什么这些领域将继续作为.NET中的一个概念.但是,C#6的自动只读属性可以消除手动编写的代码中的字段.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有