2010-05-07 14 views
5

rozważyć standard C# 'funkcji'czy nazywasz je funkcjami, procedurami lub metodami?

public void foo() { // jakiś kod }

w C lub C++, nazywa się to 'funkcja' - nawet jeśli biorąc żadnych parametrów i powrót bez wartości. W innym języku może to być "procedura". W orientacji obiektowej należy mówić o nazwie "metoda", jeśli członek klasy. Jaki byłby prawidłowy termin do użycia w języku C#?

Odpowiedz

1

Myślę, że w języku C# wywołaj metodę, ponieważ C# jest językiem zorientowanym obiektowo.

+0

Co z funkcją JavaScript? Czy powinniśmy też nazwać to metodą? – Feyyaz

0

Myślę, że metoda jest poprawnym terminem, ale wątpię, czy dostaniesz jakieś śmieszne spojrzenia na używanie innych sugerowanych nazw.

1

Jeśli "Funkcja" jest częścią klasy, nazywam ją metodą.

Jeśli kodowałem w C (tj. W idiomu progresywnym lub innym niż OO), nazywam to funkcją.

Ja osobiście nie używać proceedure słowo odnosi się do „funkcja”

0

Ponieważ spędziłem dużo czasu z ADA Nazwałbym że „procedura”, ponieważ nie ma żadnej wartości zwracanej. Gdyby miał wartość zwrotu, nazwałbym to "funkcją".

Nigdy nie widziałem sensu mówienia "Metoda", chociaż jest to najprawdopodobniej właściwe określenie, które należy stosować, gdy mówimy o funkcjach/procedurach, które są członkami klasy. Nigdy tak naprawdę nie widziałem użycia innego terminu dla tego samego.

4
  • Metoda: funkcja klasy.
  • Funkcja: funkcja poza klasą, możliwa tylko w językach pełnoobiektowych (np. C++, C, itp.)
  • Procedura: funkcja, która nie zwraca nic/nieważne. I PERSONNALY nie lubię tego słowa, wolałbym użyć „funkcji”

Dokonaj wyboru =)

Edit: Żeby być bardziej precyzyjnym, metoda, funkcje i procedury są słowa OOP opisać podprogram. Niektóre języki mają swoje własne słownictwo, takie jak "predykat" w Prologu, lub "konstruktor" w C++/C#/Java, lub nawet "właściwość" w języku C#.

+0

Predykat Prologu jest daleki od podprogramu. Języki z podprogramami, pochodne Algola, składają się z poleceń imperatywnych i wyrażeń. Byłbym przekonany, że język bez instrukcji nie może mieć podprogramów, nawet jeśli może mieć funkcje. Czy "y = 2 * x + b" jest podprogramem? Funkcja? ;) –

+0

@Heath masz rację, szczególnie dla Prolog. Domyślam się, że podprocedura nie jest przywłaszczona. Mogę edytować, aby go usunąć ... –

2

Wystarczy pomylić jest dodatkowe problem: (od C# Language Specification)

7.4 Function members
członkowie funkcyjne są członkami, które zawierają instrukcje wykonywalne. Członkowie funkcji są zawsze członkami typów i nie mogą być członkami przestrzeni nazw.C# definiuje następujące kategorie członków funkcję:
* Metody
* Właściwości
* Wydarzenia
* indeksujących
* operatory zdefiniowane przez użytkownika
* konstruktorzy instancji
* Statyczne konstruktorzy
* destruktory

I

10. Classes
Klasa jest struktura danych może zawierać zgromadzonych danych (stałe i pola), członków funkcyjne (metody, właściwości zdarzeń, podziałowe, operatory, przykład konstruktory destruktory i konstruktorzy statyczne) i zagnieżdżone typy. Dziedziczenia dziedziczenia typów klas, mechanizm, w którym klasa pochodna może rozszerzać i specjalizować klasę podstawową.

Tak więc "element funkcyjny" lub "metoda" byłby poprawny dla C#.

2

Metoda jest OOP abstrakcja termin. Opisują zachowanie (czasownik) obiektu. Są one odpowiednikiem niektórych funkcji i procedur programowania proceduralnego. (właściwości itp. Są również funkcją i procedurami).

Funkcja jest programem wewnątrz programu, który zwraca niektóre wartości. Procedura jest programem w programie, który coś robi. Metody, właściwości itp., To kolejny poziom abstrakcji (używany w OOP). Są owinięte wokół funkcji i procedur.

1

Myślałem (w Ada), że "procedura" jest ogólnie poprawnym terminem, a "funkcja" to procedura, która gwarantuje, że jest wolna od skutków ubocznych, to znaczy, że odczytuje tylko i manipuluje danych i zwraca je, ale niczego nie zapisuje ani nie ma żadnych "efektów ubocznych".

W każdym razie jestem facetem w Javie, nazywam wszystko funkcją, mimo że powinna być nazywana metodą.

Powiązane problemy