2010-05-07 5 views
5

betrachten eine Standard C# 'Funktion'nennst du sie Funktionen, Prozeduren oder Methoden?

public void foo() { // some Code }

in C oder C++ dies eine 'Funktion' genannt wird - auch wenn keine Parameter zu nehmen und Rückkehr kein Wert. In einer anderen Sprache wäre es vielleicht eine "Prozedur". In Objektorientierung sprechen würde es eine 'Methode', wenn ein Klassenmitglied. Was wäre der korrekte Ausdruck in C#?

Antwort

1

Ich denke in C# nennen Sie es eine Methode, weil C# objektorientierte Sprache ist.

+0

Wie wäre es mit einer JavaScript-Funktion? Sollten wir es auch eine Methode nennen? – Feyyaz

0

Ich denke, Methode ist der richtige Begriff, aber ich bezweifle, dass Sie irgendwelche komischen Blicke für die Verwendung eines der anderen vorgeschlagenen Namen bekommen.

1

Wenn eine "Funktion" Teil einer Klasse ist, nenne ich es eine Methode.

Wenn ich in C codierte (d. H. In procedural oder non OO Idiom), nenne ich es eine Funktion.

Ich persönlich verwende das Wort proceedure nicht auf eine „Funktion“ verweisen

0

Da ich viel Zeit mit ADA verbrachte ich, dass ein „Verfahren“ nennen würde, da es keinen Rückgabewert hat. Wenn es einen Rückgabewert hätte, hätte ich es eine "Funktion" genannt.

Ich habe nie den Punkt gesehen, "Methode" zu sagen, obwohl das wahrscheinlich der richtige Begriff ist, wenn man über Funktionen/Prozeduren spricht, die Mitglieder einer Klasse sind. Ich habe nie wirklich einen anderen Begriff für dasselbe gesehen.

4
  • Methode: Funktion einer Klasse.
  • Funktion: Funktion außerhalb einer Klasse, nur in Vollobjekt-Sprachen möglich (wie C++, C usw.)
  • Prozedur: Funktion, die nichts/void zurückgibt. Ich personnaly mag dieses Wort nicht, würde ich eher verwenden ‚Funktion‘

Treffen Sie Ihre Wahl =)

bearbeiten: Nur um genauer zu sein, Verfahren, Funktion und Verfahren sind OOP Worte um ein Unterprogramm zu beschreiben. Einige Sprachen haben ihr eigenes Vokabular wie "Prädikat" in Prolog oder "Konstruktor" in C++/C#/Java oder sogar "Eigenschaft" in C#.

+0

Ein Prolog-Prädikat ist weit entfernt von einer Subroutine. Sprachen mit Unterprogrammen, Algol-Derivaten, bestehen aus imperativen Anweisungen plus Ausdrücken. Ich würde sagen, dass eine Sprache ohne Anweisungen keine Unterroutinen haben kann, obwohl sie Funktionen haben kann. Ist "y = 2 * x + b" ein Unterprogramm? Eine Funktion? ;) –

+0

@Heath du hast recht, vor allem für den Prolog. Ich denke Subroutine ist nicht angeeignet. Ich könnte bearbeiten, um es zu löschen .. –

2

einfach das Problem weitere verwechseln: (von C# Language Specification)

7.4 Function members
Funktions Mitglieder Mitglieder sind, die ausführbare Anweisungen enthalten. Funktionsmember sind immer Member von Typen und können keine Member von Namespaces sein.C# definiert die folgenden Kategorien der Funktionselemente:
* Methoden
* Eigenschaften
* Events
* Indexer
* Benutzerdefinierte Operatoren
* Instanzkonstruktoren
* Statische Konstruktoren
* Destructors

Und

10. Classes
Eine Klasse ist eine Datenstruktur, die Datenelemente (Konstanten und Felder) enthält, Funktionselemente (Methoden, Eigenschaften, Ereignisse, Indexer, Operatoren, Instanzkonstruktoren, Destruktoren und statische Konstruktoren) und verschachtelte Typen. Klassentypen unterstützen die Vererbung, einen Mechanismus, mit dem eine abgeleitete Klasse eine Basisklasse erweitern und spezialisieren kann.

Also "Funktionsmitglied" oder "Methode" wäre für C# korrekt.

2

Methode ist OOP Abstraktion Begriff. Sie beschreiben das Verhalten (ein Verb) eines Objekts. Sie entsprechen einigen Funktionen und Verfahren der prozeduralen Programmierung. (die Eigenschaften usw. sind auch Funktion und Prozeduren).

Also, Funktion ist ein Programm innerhalb des Programms, das einige Werte zurückgibt. Prozedur ist ein Programm im Programm, das etwas tut. Methoden, Eigenschaften usw., sind eine nächste Ebene der Abstraktion (in OOP verwendet). Sie sind um Funktionen und Prozeduren gewickelt.

1

Ich dachte (in Ada), dass eine "Prozedur" im Allgemeinen der richtige Begriff ist, und eine "Funktion" ist eine Prozedur, die garantiert nebenwirkungsfrei ist, dh nur liest und manipuliert Daten, und gibt es zurück, aber schreibt nichts oder irgendwelche "Nebenwirkungen".

Ich bin sowieso ein Java-Typ, ich nenne alles eine Funktion, obwohl es eine Methode genannt werden sollte.

Verwandte Themen