Funktionen sollten mit "Get" beginnen?

7

Ich versuche, die C # -Kodierungsstandards zu betrachten, um meinen Code schöner und standardmäßiger zu machen, und ich habe eine Frage: Sollen Funktionen (Methoden, die keine Leerstellen sind) nach den C # -Kodierungsstandards mit "beginnen" Bekommen"? Zum Beispiel: " GetSongOrder() ", " GetNextLine() " usw.?

Danke.

    
Alon Gubkin 22.01.2010, 21:11
quelle

6 Antworten

24

Es gibt zwei Fälle:

Wenn die Routine den Wert sehr schnell "erhalten" kann, ohne dass es zu Nebenwirkungen im Code kommt, empfehle ich, einen Eigenschaften-Getter zu verwenden und den Namen "get" wegzulassen:

%Vor%

Wenn jedoch eine Verarbeitung erforderlich ist, ist eine Methode mit dem Namen "Get ..." geeignet. Dies deutet darauf hin, dass beim Aufruf dieser Methode möglicherweise Nebenwirkungen auftreten, wie z. B. eine zusätzliche Verarbeitung oder eine Änderung in einem bestimmten Status:

%Vor%     
Reed Copsey 22.01.2010, 21:15
quelle
2

Ihr Funktionsname sollte prägnant und sinnvoll sein. Nicht mehr, nicht weniger.

Wenn get für Sie arbeitet, verwenden Sie Get. Wenn das Abrufen funktioniert, verwende das.

Es gibt keinen echten "Standard" für Namenskonventionen.

    
Jack Marchetti 22.01.2010 21:13
quelle
2

Im Allgemeinen ist eine Verb-Nomen-Benennungskonvention für Funktionen üblich. 'Get' ist nur eine der Verben, die Sie vielleicht sehen. Es könnte auch 'Aktivieren', 'Schließen', 'Dump' oder irgendetwas anderes sein ... es ist nur eine Konsequenz der englischen und allgemeinen Kodierung, dass eine Methode oder Funktion typischerweise 'Etwas tun' zu 'irgendeiner Art von Objekt (en) '.

    
Michael Bray 22.01.2010 21:13
quelle
1

Ich habe dazu noch keinen C # -Standard gesehen, aber die meisten tatsächlichen -Codes, die ich geschrieben habe, verwenden "getter" -Eigenschaften und lassen das Wort "Get" aus dem Funktionsnamen weg. Beispiel:

%Vor%

Das Verwenden von "Get" (und "Set") als Funktionsnamen-Präfix ist etwas, was ich normalerweise in Sprachen sehe, die keine Eigenschaften a la .NET (Sprachen wie C, Java) haben.

Bearbeiten:

... und natürlich können Sie auch Setter haben

%Vor%

Natürlich, wenn Sie einen Getter und einen Setter haben wollen und keine zusätzliche Verarbeitung benötigen, können Sie einfach folgendes tun:

%Vor%

Wenn du nur einen PUBLIC-Getter willst, kannst du das tun (ich denke - es ist eine Weile her):

%Vor%     
quelle
1

Nein, es gibt keinen Standard, dass die Funktion mit "Get" beginnen soll.

Beim Erstellen von Funktionsnamen, die Sinn ergeben, nehmen sie oft diese Form an, wie die Funktion GetHashCode . Andere Verben am Anfang sind üblich, wie in der Funktion ToString , und nur Verben wie in der Funktion Encode .

Es gibt andere Formen, in denen Sie eher das Ergebnis der Funktion beschreiben, wie die Funktion Substring .

    
Guffa 22.01.2010 21:20
quelle
1

Zusätzlich zu anderen Antworten - wenn Sie eine Methode wie GetNextLine () haben, sollten Sie in Betracht ziehen, stattdessen eine Enumeration zurückzugeben, z. B.

IEnumerable<Line> GetLines();

    
Lee 22.01.2010 21:28
quelle

Tags und Links