是否有一个包含在内的所有可定义项目的术语?

时间:2015-06-30 11:49:39

标签: c# oop

在C#类中,显然可以定义许多对象,它们在任何形式的软件开发中都很常见。

有变数......

com.example.dependency

属性...

int i;

...方法

int I { get {return i;} set {i = value;} }

构造函数(可以视为一个函数,取决于你问的是谁)......

public int getI() { return I; }

从技术上讲,变量和属性通常称为“对象”。同样,方法的委托可以作为对象传递,并被视为对象。

我不确定的是,如果语义,我们会将该方法视为对象。关于委托/方法关系,委托不是方法。它是该方法的指针。因此,我倾向于不认为该方法是一个对象。

如上所述,是否所有对象都有一个可定义的,包罗万象的术语,可以在C#类(或任何OO语言)中定义,包括变量,属性,方法,函数,构造函数,常量等?

要明确,我不是要求就此发表意见。我想通过教科书/规范定义知道在C#和OOP中调用这些项目是什么?

2 个答案:

答案 0 :(得分:12)

他们的正确名称是members

答案 1 :(得分:5)

他们被称为成员......他们不是对象(至少不在.NET定义中)。

如果您使用反射,则使用各种FieldInfoMethodInfoPropertyInfoEventInfo ...子类MemberInfo,如果您执行{ {1}}您将获得所有公共成员。此方法甚至会返回嵌套类型(因为即使typeof(List<int>).GetMembers()也是Type)。

请注意MemberInfo不存在作为第一级&#34;项目&#34; .NET:它们只是delegate的子类class(和/或甚至MulticastDelegate,但这在C#中是不可行的,可能直接在IL中)