当我多年前开始 OO 编程时,我得到的印象是变量(如果这是正确的词的话)要么是“原始”(int、double 等),要么是一等的对象(String、JPane 等)。 )。最近对 Java 和 C# 原语的回答强化了这一点(@Daniel Pryden:Are primitive types different in Java and C#?)。但是不知道 C# ValueTypes 是基元、对象还是其他诸如二等对象之类的野兽。我看到 SO 只有一次使用 first-class
标签,所以它可能不再是一个有用的术语。
我没有找到 the Wikipedia article有用(“这篇文章需要专家的关注。”)。我会感谢分类法和术语的当前用法,主要与 Java 和 C# 相关(尽管其他语言可能会有所启发)。
澄清:我想了解一等这个词及其使用范围。
最佳答案
"first-class citizen" or "first-class element" 的概念英国计算机科学家 Christopher Strachey 介绍了一种编程语言在 1960 年代,在一等职能的背景下。该原理最著名的表述可能在 Structure and Interpretation of Computer Programs 中。 Gerald Jay Sussman 和 Harry Abelson:
- 它们可以由变量命名。
- 它们可以作为参数传递给过程。
- 它们可能作为程序的结果返回。
- 它们可能包含在数据结构中。
基本上,这意味着你可以用这个编程语言元素做你可以用编程语言中的所有其他元素做的所有事情。
关于c# - Java 和 C# 中的一等对象是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1599176/