Gibt es einen Grund, das Schlüsselwort "private" in C # zu schreiben?
Soweit ich weiß, private
ist die Standard - überall in C# (was bedeutet, dass, wenn ich nicht schreiben public
protected
internal
usw. es wird private
standardmäßig). (Bitte korrigiert mich wenn ich falsch bin.)
Also, was ist der Grund zu schreiben, dass keyword, oder warum existiert Sie überhaupt für die Mitglieder?
Zum Beispiel, wenn ein event-handler, der automatisch generiert wird, sieht es wie folgt aus:
private void RatTrap_MouseEnter(object sender, CheeseEventArgs e)
{
}
Aber warum ist es selbst schreiben, eigenes, wenn, dass die implizierten und Standard? Gerade so, dass unerfahrene Entwickler (wer nicht weiß, dass es die C# - Standard) weiß, dass es privat ist? Oder gibt es einen Unterschied für den compiler?
Darüber hinaus gibt es einen Fall, wo das schreiben der "privaten" (allein) wird ändern Sie die Erreichbarkeit der member?
InformationsquelleAutor der Frage Camilo Martin | 2011-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht wahr. Typen in einem namespace (Klassen, Strukturen, Schnittstellen, etc.) werden internen standardmäßig. Auch die Mitglieder innerhalb der verschiedenen Arten haben unterschiedliche default-Erreichbarkeiten (wie die öffentliche Schnittstelle für Mitglieder). Für details, siehe Barrierefreiheit Ebenen auf der MSDN-Website.
Auch,
Angabe dieser explizit hilft, bezeichnen Ihre Absicht, die Art eigenes, sehr explizit. Dies erleichtert die Wartbarkeit des Codes über die Zeit. Dies kann helfen, mit anderen Entwicklern (oder sich selbst) zu wissen, ob ein Mitglied ist standardmäßig privat oder absichtlich, etc.
InformationsquelleAutor der Antwort Reed Copsey
Nicht ganz - die Standardeinstellung ist "die meisten eingeschränkten Zugang dieser Erklärung für". So zum Beispiel, mit einer top-level-Typ der Standardwert ist
internal
; für einen geschachtelten Typ der Standardwert istprivate
.Macht es deutlich, was gut ist, aus zwei Gründen:
Als für den letzten Teil:
Ja, für die Hälfte einer Immobilie restriktiver als die anderen:
Ich verwendet zu gehen, mit standardmäßig überall wo ich konnte, aber ich war davon überzeugt (teilweise von Eric Lippert), die deutlich machen, dass Sie nachgedacht habe und beschlossen etwas zu machen private ist eine gute Idee.
Ich persönlich wünschte, es gäbe einen Weg, das zu tun, für versiegelte /unversiegelte, auch für Typ-Deklarationen - möglicherweise gar nicht haben ein Standard. Ich vermute, dass viele Entwickler (mich eingeschlossen, wenn ich nicht bin vorsichtig) verlassen Klassen unversiegelt, nur weil es weniger Aufwand als die Herstellung versiegelt.
InformationsquelleAutor der Antwort Jon Skeet
private
fügt visual clutter. Für diejenigen, die darauf bestehen, dass es macht die Dinge expliziter, würde ich Fragen: machst du das mit der Mathematik auch? Zum Beispiel:Finden Sie, dass das unklar ohne redundante Klammern um
b /c
?Der Regel in C# ist sehr einfach: standardmäßig, alles ist so nah, zu privat, wie es sein kann. Also, wenn Sie etwas benötigen, werden mehr sichtbar als die Standard -, fügen Sie einen Modifikator. Ansonsten nicht hinzufügen unnötig keywords code.
InformationsquelleAutor der Antwort Ryan Lundy
Lesbarkeit, demonstration von Vorsatz sind zwei gute Gründe die ich mir denken kann.
InformationsquelleAutor der Antwort Maess
Lesbarkeit - Nicht jeder kann wissen, dass "privat" ist die Standardeinstellung.
Absicht - ein klares Zeichen dafür, dass Sie ausdrücklich als Eigentum privater (warum auch immer).
InformationsquelleAutor der Antwort James
Explizit deklarieren privatebedeutet, dass Sie wissen ist es privat. Nicht nur denken, es ist, weil so weit wie Sie wissen, es ist der Standard. Es bedeutet auch, dass jemand anderes, der sieht auf den code, der weiß, was es ist.
Gibt es kein "ich denke", "ich bin mir ziemlich sicher es ist", etc. Es ist einfach. Und jeder ist auf der gleichen Seite.
Ich bin kein C# Entwickler. Wenn ich zu arbeiten hatte, mit einigen code, der nicht explizit deklariert privatewürde ich wahrscheinlich davon ausgehen, es war internen.
Ich mag nicht, wenn Dinge werden implizit gesetzt. Es ist nie so klar wie, wenn Sie ausdrücklich festgelegt.
InformationsquelleAutor der Antwort JD Isaacks
Einen guten Grund für die explizite Angabe der Sichtbarkeit ist, so dass Sie nicht haben, um darüber nachzudenken, was ist der Standard für den Kontext Sie in.
Ein weiterer guter Grund ist, weil FxCop sagt Sie, es zu tun.
InformationsquelleAutor der Antwort Patrick McDonald
Viele Leute (Leute wie mich!) regelmäßig Programm in einer Handvoll von verschiedenen Sprachen. Wird explizit mit Dinge wie diese hindert mich brauchen, um Bedenken Sie, alle die geheimen details von all den Sprachen, die ich-Programm.
InformationsquelleAutor der Antwort davidtbernal
Ich würde sagen, für die Konsistenz mit der Lesbarkeit der Geltungsbereich der rest der Klasse.
InformationsquelleAutor der Antwort MGZero