C#字段和属性

1 c# field properties

可能重复:
C#中的字段和属性之间有什么区别?

我不明白一个类中字段和属性之间的区别.

Tim*_*mwi 8

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

甲属性是几乎等的方法或一对的方法.这只是代码.没有存储空间 例如,而不是

public int FortySeven
{
    get
    {
        return 47;
    }
}
Run Code Online (Sandbox Code Playgroud)

你也可以写

public int GetFortySeven()
{
    return 47;
}
Run Code Online (Sandbox Code Playgroud)

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

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

public int FortySeven
{
    set
    {
        Console.WriteLine(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

几乎是一样的

public void SetFortySeven(int value)
{
    Console.WriteLine(value);
}
Run Code Online (Sandbox Code Playgroud)

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

一个自动实现的属性看起来是这样的:

public int MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

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