是否有一个包含类中所有可定义项的术语

本文关键字:可定义 术语 有一个 包含类 是否 | 更新日期: 2023-09-27 18:00:33

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

存在变量。。。

int i;

属性。。。

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

方法。。。

public int getI() { return I; }

构造函数(可以被视为一个函数,这取决于你问谁)。。。

public myClass() { i = -1; }

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

我不确定的是,如果在语义上,我们会将该方法视为对象。关于委托/方法关系,委托不是方法。它是指向该方法的指针。呃,我倾向于不把这个方法当作一个对象。

既然如此,是否有一个可定义的、包罗万象的术语可以用于所有对象,这些对象可以在C#类(或任何OO语言)中定义,其中包括变量、属性、方法、函数、构造函数、常量等。?

需要明确的是,我并没有就此征求意见。我想知道,根据教科书/规范的定义,这些项目在C#和OOP中被称为什么?

是否有一个包含类中所有可定义项的术语

它们的正确名称是成员

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

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

请注意,delegate并不是.NET的一级"项":它们只是class,它将MulticastDelegate(和/或甚至是Delegate,但这在C#中是不可行的,可能直接在IL中)