Frage

private const int THE_ANSWER = 42;

oder

private const int theAnswer = 42;

Ich persönlich denke, mit modernen IDEs wir mit Camelcase gehen sollte als ALL_CAPS seltsam aussieht. Was denken Sie?

War es hilfreich?

Lösung

Die empfohlene Benennung und Kapitalisierung Konvention ist Pascal Gehäuse für Konstanten zu verwenden (Microsoft ein Tool hat namens StyleCop dass Dokumente alle die bevorzugten Konventionen und können Ihre Quelle für die Einhaltung überprüfen - obwohl es ein wenig zu anally retentive für viele Menschen den Geschmack) ist. z.

private const int TheAnswer = 42;

Die Konvention Pascal Kapitalisierung dokumentiert auch in Microsofts Rahmen Design-Richtlinien .

Andere Tipps

Eigentlich ist es

private const int TheAnswer = 42;

Zumindest, wenn man an der NET-Bibliothek suchen, die IMO ist der beste Weg, Namenskonventionen zu entscheiden -. So Ihr Code sieht nicht fehl am Platz

Optisch Versalien ist der Weg zu gehen. Es ist so erkennbar, dass Art und Weise. Aus Gründen der Eindeutigkeit und lassen keine Chance zu erraten, ich stimme für UPPER_CASE!

const int THE_ANSWER = 42;

Hinweis : Die Versalien wird nützlich sein, wenn Konstanten in derselben Datei am oberen Rand der Seite und für intellisense Zwecke verwendet werden sollen; jedoch, wenn sie zu einer unabhängigen Klasse bewegt werden, so würde Versalien mit nicht viel Unterschied machen, als Beispiel:

public static class Constant
{
    public static readonly int Cons1 = 1;
    public static readonly int coNs2 = 2;
    public static readonly int cOns3 = 3;
    public static readonly int CONS4 = 4;
}

// Call constants from anywhere
// Since the class has a unique and recognizable name, Upper Case might might lose its charm
private void DoSomething(){
var getCons1 = Constant.Cons1;
var getCons2 = Constant.coNs2;
var getCons3 = Constant.cOns3;
var getCons4 = Constant.CONS4;
 }

ich mit dem Großbuchstaben für const Werte gehen nach wie vor, aber das ist aus Gewohnheit mehr als aus einem bestimmten Grund.

Natürlich ist es macht es einfach, sofort zu sehen, dass etwas ein const ist. Die Frage ist für mich: Brauchen wir diese Informationen wirklich? Ist es uns in irgendeiner Weise helfen, Fehler zu vermeiden? Wenn ich einen Wert an die const zuweisen, wird der Compiler mir sagen, ich habe etwas dumm.

Mein Fazit: Gehen Sie mit dem Kamel Gehäuse. Vielleicht werde ich meinen Stil ändern; -)

Edit:

Das ist etwas, riecht ungarisch nicht wirklich ein gültiges Argument ist, IMO. Die Frage sollte immer sein:? Hilft es, oder tut es weh

Es gibt Fälle, in denen ungarischen hilft. Nicht, dass viele heutzutage, aber es gibt sie noch.

Zuerst ungarische Notation ist die Praxis eines Präfixes der Verwendung eines Parameters Datentyp oder beabsichtigte Verwendung anzuzeigen. Microsofts Namenskonventionen für sagen Nein zu ungarischer Notation http://en.wikipedia.org/wiki/Hungarian_notation http://msdn.microsoft.com/en-us/library/ms229045.aspx

Mit VERSALIEN wird ermutigt, nicht wie hier angegeben: Pascal Fall ist die akzeptablen Konvention und SCHREIEN CAPS. http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming

Microsoft heißt es auch hier, dass VERSALIEN verwendet werden kann, wenn es fertig ist das das existierte Schema anzupassen. http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx

Diese ziemlich viel bringt es auf.

Lassen Sie ungarische den Ungarn.

Im Beispiel würde ich sogar den endgültigen Artikel auslassen und gehen Sie einfach mit

private const int Answer = 42;

Ist diese Antwort oder ist das die Antwort?

* Made bearbeiten wie Pascal streng richtig, jedoch dachte ich die Frage war eher eine Antwort auf Leben, das Universum und alles .

In seinem Artikel Konstanten (C # -Programmierhandbuch) , Microsoft gibt folgendes Beispiel:

class Calendar3
{
    const int months = 12;
    const int weeks = 52;
    const int days = 365;

    const double daysPerWeek = (double) days / (double) weeks;
    const double daysPerMonth = (double) days / (double) months;
}

Also, für Konstanten, es erscheint , dass Microsoft die Verwendung von camelCasing . Aber beachten Sie, dass diese Konstanten sind definiert In der Nähe .

Argumentieren, ist die Benennung von außen sichtbaren Konstanten von größerem Interesse. In der Praxis dokumentiert Microsoft seine öffentliche Konstanten in der .NET-Klassenbibliothek als Felder . Hier sind einige Beispiele:

Die ersten beiden sind Beispiele für PascalCasing . Die dritte scheint zu folgen Microsofts Kapitalisierung Konventionen für ein Zwei-Buchstaben-Akronym (obwohl pi rel="nofollow ist kein acryonym). Und der vierte scheint darauf hinzudeuten, dass die Regel für ein aus zwei Buchstaben acryonym erstreckt sich auf einen einzigen Buchstaben Akronym oder Bezeichner wie E (die die mathematische Konstante darstellt e ).

Darüber hinaus in seiner Kapitalisierung Konventionen Dokument, Microsoft sehr direkt besagt, dass Feldbezeichner über PascalCasing benannt werden soll, und gibt die folgenden Beispiele für MessageQueue.InfiniteTimeout und UInt32.Min :

public class MessageQueue
{
    public static readonly TimeSpan InfiniteTimeout;
}

public struct UInt32
{
    public const Min = 0;
}

Fazit: Verwenden Sie PascalCasing für öffentliche Konstanten (die als const oder static readonly Felder dokumentiert werden)

.

Schließlich, so weit ich weiß, Microsoft nicht befürwortet bestimmte Namen oder Kapitalisierung Konventionen für privat Identifikatoren wie in den Beispielen in der Frage vorgelegt gezeigt.

Ich neige dazu, tatsächlich hier Pascal bevorzugen - aber aus Gewohnheit, ich bin schuldig UPPER_CASE ...

Die ALL_CAPS werden aus dem C und C ++ Weg genommen zu arbeiten, glaube ich. Dieser Artikel erklärt, wie der Stil Unterschiede zustande kamen.

In den neuen IDE wie Visual Studio ist es einfach, die Typen, den Umfang zu identifizieren und wenn sie konstant sind, so ist es nicht unbedingt erforderlich ist.

Die FxCop und Microsoft StyleCop Software wird Ihnen Richtlinien helfen geben und Ihren Code zu überprüfen, so arbeitet jeder die gleiche Art und Weise.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top