【问题标题】:Is the term 'function' valid in c#?术语“函数”在 C# 中有效吗?
【发布时间】:2011-10-06 10:10:36
【问题描述】:

我刚刚开始攻读计算机学位的第三年,并且一直在浏览课程材料。我的应用程序开发模块基于 c#。在整个材料中,讲师将我所知道的被称为“方法”的东西称为“功能”。我知道术语“函数”被使用(例如)c++ 作为代码块,但我认为 OOP 使用“方法”来区分两种不同类型的编程。

那么,这两者是可以互换的还是讲师应该使用“方法”这个词?

【问题讨论】:

  • AFAIK 术语函数对脚本语言有效,并且方法确实在 OOP 语言中使用。不过我没有它的来源。
  • 也许他将返回值的方法称为“函数”?
  • @user979014 很好的链接,谢谢

标签: c# function syntax


【解决方案1】:

C# 3.0 规范说

1.3

类类型定义了包含数据成员的数据结构 (字段)和函数成员(方法、属性等)。

1.6.7

包含可执行代码的成员统称为 类的函数成员。上一节介绍了方法, 它们是主要的功能成员。本节介绍 C# 支持的其他类型的函数成员:构造函数, 属性、索引器、事件、运算符和析构函数。

当然,“匿名函数”正是由该术语调用的。短语“函数成员或匿名函数”在规范中出现很多,显然没有准确的更短的方式来表示“可执行代码块”。

【讨论】:

  • 所以(简而言之)方法只是一种(尽管是主要的)功能?
  • 感谢@AakashM 的回答。阻止我在课堂上变得聪明,并澄清了我认为非常重要的一点:)
【解决方案2】:

好吧,根据定义,函数是返回值且不应该有任何副作用的东西。函数式编程将这种范式发挥到了极致。

相比之下,操作或子例程可能没有返回值,而是有一些副作用。命令式编程依赖于这样的东西。我使用的唯一一种主动迫使您声明它的语言是 Visual Basic(子和函数)。在 C# 中,如果您没有经典意义上的函数,您只需将 void 声明为返回类型。

“方法”一词是 AFAIK 创造的,用于区分面向对象的编程与其他风格。作为对象的一部分(成员)的函数将是一个方法。

希望对你有帮助。

【讨论】:

  • +1 无副作用部分至关重要。这就是函数根据定义生成函数的原因,而不是生成类函数(动词)的成员。
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多