是否有一个包含类中所有可定义项的术语
本文关键字:可定义 术语 有一个 包含类 是否 | 更新日期: 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定义中不是)。
如果使用反射,则所有各种FieldInfo
、MethodInfo
、PropertyInfo
、EventInfo
。。。子类MemberInfo
,如果您执行typeof(List<int>).GetMembers()
,您将获得所有公共成员。此方法甚至会返回嵌套类型(因为即使是Type
也是MemberInfo
)。
请注意,delegate
并不是.NET的一级"项":它们只是class
,它将MulticastDelegate
(和/或甚至是Delegate
,但这在C#中是不可行的,可能直接在IL中)