【发布时间】:2010-05-07 07:01:56
【问题描述】:
考虑一个标准的 c# 'function'
公共无效 foo() { //一些代码 }
在 c 或 c++ 中,这称为“函数”——即使不带参数也不返回值。在另一种语言中,这可能是一个“程序”。 在面向对象的说法中,如果是类成员,它将被称为“方法”。 在 c# 中使用的正确术语是什么?
【问题讨论】:
考虑一个标准的 c# 'function'
公共无效 foo() { //一些代码 }
在 c 或 c++ 中,这称为“函数”——即使不带参数也不返回值。在另一种语言中,这可能是一个“程序”。 在面向对象的说法中,如果是类成员,它将被称为“方法”。 在 c# 中使用的正确术语是什么?
【问题讨论】:
做出你的选择 =)
编辑:更准确地说,方法、函数和过程是描述子程序的 OOP 词。有些语言有自己的词汇表,例如 Prolog 中的“谓词”,C++/C#/Java 中的“构造函数”,甚至 C# 中的“属性”。
【讨论】:
只是为了进一步混淆问题:(来自 C# 语言规范)
7.4 Function members
函数成员是包含可执行语句的成员。函数成员始终是类型的成员,不能是命名空间的成员。 C# 定义了以下类别的函数成员:
* 方法
* 属性
* 活动
* 索引器
* 用户自定义运算符
* 实例构造函数
* 静态构造函数
* 析构函数
和
10. Classes
类是可能包含数据成员(常量和字段)、函数成员(方法、属性、事件、索引器、运算符、实例构造函数、析构函数和静态构造函数)和嵌套类型的数据结构。类类型支持继承,这是一种派生类可以扩展和专门化基类的机制。
所以“函数成员”或“方法”对于 C# 来说是正确的。
【讨论】:
方法是OOP 抽象术语。它们描述对象的行为(动词)。 它们等价于过程编程的一些功能和过程。 (属性等也是函数和过程)。
因此,函数是程序中返回一些值的程序。 过程是程序中的一个程序,它做某事。 方法、属性等是下一层抽象(在 OOP 中使用)。它们围绕着函数和过程。
【讨论】:
我认为在 C# 中将其称为方法,因为 C# 是面向对象的语言。
【讨论】:
如果“函数”是类的一部分,我将其称为方法。
如果我在 C 中编码(即在过程或非 OO 习语中),我将其称为函数。
我个人不使用过程一词来指代“功能”
【讨论】:
我认为(在 Ada 中)“程序”通常是正确的术语,“函数”是保证没有副作用的程序,也就是说,它只读取数据并对其进行操作, 并返回它,但不写任何东西或有任何“副作用”。
不管怎样,我是一个 Java 人,我把所有东西都称为函数,即使它应该称为方法。
【讨论】:
我认为方法是正确的术语,但我怀疑你会因为使用任何其他建议的名称而受到任何有趣的怒视。
【讨论】:
由于我在 ADA 上花了很多时间,我将其称为“程序”,因为它没有返回值。如果它有返回值,我会称它为“函数”。
我从来没有看到过说“方法”的意义,尽管这很可能是在谈论作为类成员的函数/过程时使用的正确术语。从来没有真正看到过使用另一个术语来表示同一件事。
【讨论】: