2010-11-06 16 views
25

Da Felder implizit privat sind, warum wird in den Büchern, Artikeln usw. oft explizit deklariert?Warum explizit "privat" schreiben?

+0

auch erklären sehen [Sollten Sie den privaten Zugriffsmodifizierer verwenden, wenn es überflüssig ist?] (Https: // Stackoverflow .com/questions/254912/should-you-use-der-private-access-modifier-wenn-es-redundant) –

Antwort

60

Da die Standardzugriffsstufen in den verschiedenen Sprachen variieren und viele Benutzer in mehr als einer Sprache programmieren. Es ist leicht, verwirrt zu werden, entweder als der Autor oder als jemand, der den Code später liest, so dass es expliziter ist, sich besser damit zu befassen als implizit.

+0

+1 Ausgezeichneter Punkt über Sprachvariabilität. –

+1

Sie könnten nicht richtiger sein, wie kommt es, dass es nicht als Antwort markiert ist?Es sollte – Proclyon

+2

@Proclyon sein, vielleicht, weil SO eine 2-Stunden-Verzögerung erzwingt, bevor eine Antwort akzeptiert;) –

13

Um Ihren Code schön aussehen zu lassen :).

Sie haben recht, es ist nicht notwendig, aber es ist üblich, sie trotzdem zu schreiben. Zumindest hat jede Methode eine Berechtigung, die explizit erwähnt wird, und es macht Ihren Code leichter lesbar.

+0

Codierung ist eine Kunst mehr als eine Wissenschaft und Kunst muss schön sein. :) – Samuel

6

Manchmal ist Explizit besser als implizit, und das ist umso mehr, wenn Sie Lehrmaterial schreiben. Für Personen, die die Regeln für die Standardzugriffsstufen nicht kennen oder sich nicht daran erinnern können, ist es für sie weniger wichtig, sich mit dem Lesen des Codes zu beschäftigen.

Verwandte Frage

Der Standardzugang für alles in C# ist "der eingeschränkte Zugriff Sie für dieses Mitglied erklären könnten".

5

Weil Sie Code für Wartbarkeit und Klarheit schreiben, BESONDERS in Codebeispielen. Implizite Deklarationen gibt es für den Compiler, nicht für den Programmierer. Wenn Sie die Sichtbarkeit und den Umfang Ihrer Variablen nicht explizit deklarieren, bleibt Ihre Absicht mehrdeutig. Ist es wirklich so viel zusätzliches Tippen?

2

Sie müssen sich daran erinnern, dass Code mit jemand anderem enden kann, um es irgendwann zu lesen, es könnte Sie in 6 Monaten sein und Sie müssen die Absicht verstehen. Etwas Privates zu deklarieren bedeutet, dass dieses spezielle Implementierungsdetail nicht für alle verfügbar sein soll, die es verwenden können (zu diesem Zeitpunkt). Spätere Revisionen können die Art und Weise ändern, in der das bestimmte Ding funktioniert, und wenn Sie Abwärtskompatibilität bereitstellen möchten, Wenn es von Anfang an öffentlich war, muss es in zukünftigen Revisionen bleiben.

19

Das Problem mit impliziten Deklarationen ist, dass der Leser nicht erkennen kann, ob derjenige, der den Code geschrieben hat, die implizite Deklaration wollte oder einfach vergessen hat, etwas zu schreiben. Wenn man explizit sagt, besteht kein Zweifel an den Absichten.

+0

Stimme völlig mit Ihnen überein. Es ist dasselbe wie Kardinalität im UML-Datenbankdiagramm; ohne es zu spezifizieren, können Sie nicht wissen, ob es ist, weil der Autor den Standardwert wünscht oder wenn er vergaß, es zu definieren. – Samuel

1

Meiner Meinung nach macht es den Code besser lesbar. Ich muss nicht über den Standardzugriffsmodifikator nachdenken. Es wird auch von StyleCop erzwungen, ein Werkzeug, das ich verwende, um einen konsistenten Codierungsstil zu gewährleisten.

1

explizite Deklaration verwendet, um Ihnen gesagt, dass die Variable bewusst privat und muss es als private

Verwandte Themen