C# 字段和属性 [重复]

Posted

技术标签:

【中文标题】C# 字段和属性 [重复]【英文标题】:C# fields and properties [duplicate] 【发布时间】:2011-06-19 00:44:22 【问题描述】:

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

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

【问题讨论】:

msdn.microsoft.com/en-us/library/ms173118.aspx msdn.microsoft.com/en-us/library/x9fsa0sw.aspx 【参考方案1】:

字段是信息的存储位置。例如,如果该字段的类型为 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);

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

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

public int MyProperty  get; set; 

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

【讨论】:

以上是关于C# 字段和属性 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#属性和字段

c# linq groupby是默认去掉重复行吗

属性和字段的区别和联系

c#中字段和属性的区别

C# 字段属性成员变量 [转载]

C#非静态的字段、方法或属性要求对象引用