C#字段和属性

时间:2011-02-01 04:10:43

标签: c# properties field

  

可能重复:
  What is the difference between a field and a property in C#

我不理解一个类中字段和属性之间的区别。

1 个答案:

答案 0 :(得分:8)

字段是信息的存储位置。例如,如果字段的类型为int,则它存储一个32位整数(从大约40亿到大约40亿的数字)。

属性几乎就像一个方法或一对方法。这只是代码。没有存储空间例如,而不是

public int FortySeven
{
    get
    {
        return 47;
    }
}

你也可以写

public int GetFortySeven()
{
    return 47;
}

它或多或少都是一样的;唯一的区别是你写FortySeven(没有括号)但是GetFortySeven()(带括号)。

当然,属性也可以有 setter ,这意味着

public int FortySeven
{
    set
    {
        Console.WriteLine(value);
    }
}

完全相同
public void SetFortySeven(int value)
{
    Console.WriteLine(value);
}

现在而不是FortySeven = 47你写SetFortySeven(47),但在功能上它是相同的。

自动实施的属性如下所示:

public int MyProperty { get; set; }

此代码声明字段和属性,但该字段不可见,您只能访问该属性。它使用不可见字段进行存储。