2010-05-07 11 views
5

consideran un C# 'función' estándar¿los llama funciones, procedimientos o métodos?

foo public void() { // algún código }

en C o C++ esto se llama una 'función' - incluso si se toma ningún parámetro y devolver sin valor. En otro idioma, tal vez sería un 'procedimiento'. En orientación de objeto, se denominaría 'método' si es un miembro de clase. ¿Cuál sería el término correcto para usar en C#?

Respuesta

1

Creo que en C# lo llaman un método porque C# es un lenguaje orientado a objetos.

+0

¿Qué tal una función de JavaScript? ¿Deberíamos llamarlo también un método? – Feyyaz

0

Creo que el método es el término correcto, pero dudo que obtengas miradas divertidas por usar cualquiera de los otros nombres sugeridos.

1

Si una "Función" es parte de una clase, lo llamo un método.

Si estaba codificando en C (es decir, en lenguaje procedural o no OO) lo llamo una función.

yo personalmente no usan la palabra proceedure para referirse a una "función"

0

Desde que pasé mucho tiempo con ADA que yo llamaría un "procedimiento" ya que no tiene valor de retorno. Si tuviera un valor de retorno, lo habría llamado una "función".

Nunca he visto el sentido de decir "Método", aunque es muy probable que sea el término correcto para usar cuando se habla de funciones/procedimientos que son miembros de una clase. Nunca vi el uso de otro término más para la misma cosa.

4
  • Método: función de una clase.
  • Función: función de una clase, posible solo en lenguajes de objetos completos (como C++, C, etc.)
  • Procedimiento: función que no devuelve nada/vacío. Me personnaly no me gusta esta palabra, prefiero usar 'función'

Haga su elección =)

Editar: Para ser más precisos, el método, la función y el procedimiento son palabras de POO para describir una subrutina. Algunos lenguajes tienen su propio vocabulario, como "predicado" en Prolog, o "constructor" en C++/C#/Java, o incluso "propiedad" en C#.

+0

Un predicado Prolog está lejos de ser una subrutina. Los idiomas con subrutinas, derivados de Algol, consisten en declaraciones imperativas más expresiones. Opino que un lenguaje sin declaraciones no puede tener subrutinas, aunque puede tener funciones. ¿Es "y = 2 * x + b" una subrutina? ¿Una función? ;) –

+0

@Heath tienes razón, especialmente para el Prolog. Supongo que la subrutina no es apropiada. Podría editar para eliminarlo .. –

2

Sólo para confundir al futher tema: (de C# Language Specification)

7.4 Function members
miembros de función son miembros que contienen sentencias ejecutables. Los miembros de función siempre son miembros de tipos y no pueden ser miembros de espacios de nombres.C# define las siguientes categorías de miembros de función:
* Métodos
* Propiedades
* Eventos
* Indexadores
* operadores definidos por el usuario
* constructores de instancia
* constructores estáticos
* Destructors

Y

10. Classes
Una clase es una estructura de datos que puede contener miembros de datos (constantes y campos), miembros de función (métodos, propiedades, eventos, indizadores, operadores, constructores de instancia, destructores y constructores estáticos), y tipos anidados. Los tipos de clases admiten la herencia, un mecanismo mediante el cual una clase derivada puede extender y especializar una clase base.

Entonces "miembro de función" o "método" sería correcto para C#.

2

El método es OOP abstracción término. Describen el comportamiento (un verbo) de un objeto. Son equivalentes a algunas de las funciones y procedimientos de la programación de procedimientos. (las propiedades, etc. también son funciones y procedimientos).

Por lo tanto, la función es un programa dentro del programa que devuelve algunos valores. Procedimiento es un programa dentro del programa que hace algo. Los métodos, propiedades, etc. son un próximo nivel de abstracción (utilizado en OOP). Están envueltos en funciones y procedimientos.

1

Pensé (en Ada) que un 'procedimiento' es el término correcto en general, y una 'función' es un procedimiento que se garantiza que es libre de efectos secundarios, es decir, solo se lee y se manipula en datos, y lo devuelve, pero no escribe nada ni tiene ningún 'efecto secundario'.

Soy Java de todos modos, llamo a todo una función, aunque debería llamarse método.

Cuestiones relacionadas