【发布时间】:2011-02-12 18:58:52
【问题描述】:
我试图找出这些术语的含义,但特别是由于语言障碍,我无法理解它们的用途。 我假设“字段”是类中的变量(也是对象?),而“属性”只是一个返回特定值并且不能包含方法等的对象。通过“成员”,我理解在类级别声明的任何对象。但这些只是我基于注释代码示例的假设,其中一些细心的程序员使用“属性区域”等。 如果有人能向我解释一下,我将不胜感激。
【问题讨论】:
标签: c# syntax terminology
我试图找出这些术语的含义,但特别是由于语言障碍,我无法理解它们的用途。 我假设“字段”是类中的变量(也是对象?),而“属性”只是一个返回特定值并且不能包含方法等的对象。通过“成员”,我理解在类级别声明的任何对象。但这些只是我基于注释代码示例的假设,其中一些细心的程序员使用“属性区域”等。 如果有人能向我解释一下,我将不胜感激。
【问题讨论】:
标签: c# syntax terminology
这些术语跨越不同的语言,因此它们有很多重叠,并且差异更多的是具体语言而不是概念。属性和字段用于描述类中的数据,成员可以是类中的数据和行为(例如方法)。但是,C# 和 Java 中的属性和字段之间存在差异,但这是语法糖。如果您使用的是基于原型的面向对象语言(而不是基于类的语言),您会谈论对象槽...如果您想了解整个含义,请先选择一种语言。
【讨论】:
在 C# 中:
字段:这些是在类级别声明的变量。
public class SomeClass
{
private int someInteger; // This is a field
public double someDouble; // This is another field
protected StringBuidler stringBuidler; // Still another field
}
properties :通常用作类的私有字段的访问器,它们可以提供 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;
}
}
}
成员:包括类的字段、属性、方法、事件。
【讨论】:
该领域的术语非常混乱,并且因语言和模型而异。您是否有特定的语言或平台?
第一个近似值:
【讨论】: