编程术语 - 字段,成员,属性(C#)

时间:2010-04-27 09:46:49

标签: c# syntax terminology

我试图找到这些术语的含义,但特别是由于语言障碍,我无法理解它们的用途。 我假设“field”在类中是变量(对象也是?),而“property”只是一个返回特定值且不能包含方法等的对象。通过“member”我理解在类级别声明的任何对象。但这些只是我基于注释代码示例的假设,其中一些细心的程序员使用“属性区域”等。 如果有人能向我解释,我真的很感激。

3 个答案:

答案 0 :(得分:41)

在C#中:

字段:这些是在类级别声明的变量。

public class SomeClass
{
    private int someInteger; // This is a field
    public double someDouble; // This is another field
    protected StringBuidler stringBuidler; // Still another field
}

属性:通常用作类的私有字段的访问器,它们可以提供get和set方法,围绕字段操作包装一些逻辑。

public class SomeClass
{
    private StringBuilder stringBuilder;

    // Property declaration
    public StringBuilder StringBuilder
    {
        get 
        { 
            if(this.stringBuilder == null)
                this.stringBuilder = new StringBuidler();

            return this.stringBuilder;
        }
        set
        {
            if(this.stringBuilder == null)
                this.stringbuilder = value;
        }
    }
}

成员:包括字段,属性,方法,类的事件。

答案 1 :(得分:1)

这个领域的术语无可救药地混杂在一起,从语言到语言,从模型到模型都有很大差异。您是否有特定的语言或平台?

第一个近似值:

  1. SQL讨论通常可以互换地使用字段 Field 也是Java和C#类数据成员的标准术语。
  2. 成员在C ++中最常用于引用成员函数成员变量等等,用于各种不同的成员结构/类定义。

答案 2 :(得分:0)

这些术语跨越不同的语言,因此它们重叠很多,差异更多地是关于具体语言而不是概念。属性和字段用于描述类中的数据,成员可以是类中的数据和行为(例如方法)。但是,C#和Java中的属性和字段之间存在差异,但这是语法糖。如果您使用基于原型的面向对象语言(而不是基于类),您将谈论对象的插槽......如果您想要掌握整个含义,请先选择一种语言。