ReSharper - 'MOD_NONE' does not match rule 'Contant fields (Private)'

  • C#

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von GooMan.

    ReSharper - 'MOD_NONE' does not match rule 'Contant fields (Private)'

    Hab in meinem Code einen global definierten Integer:

    C#-Quellcode

    1. private const int MOD_NONE = 0x0000;
    2. private const int MOD_CONTROL = 0x0002;
    3. private const int MOD_SHIFT = 0x0004;
    4. private const int WM_HOTKEY = 0x0312;

    (wird für Hotkeys benötigt - if (m.Msg == WM_HOTKEY) & RegisterHotKey(this.Handle, 1, MOD_CONTROL, (int)Keys.D2))

    Jetzt hab ich mir ReSharper gekauft und installiert. Nach der Installation zeigt mir ReSharper einen warning (Naja nach der Installation wurde mein Code von 0 Warnings & 0 Fehlern auf 85 Warnings erhöht xD) bei jedem dieser Variablen an:

    Name 'MOD_NONE' does not match rule 'Contant fields (Private)'. Suggested Name is 'ModNone'


    Jetzt zur eigentlichen Frage:

    Weiß einer wieso ReSharper mir diesen Warning anzeigt? Beziehungsweise wie man diesen umgeht / behebt?

    Edit by ~blaze~:
    kein C, sondern C#
    --> *Thema aus Weitere Sprachen und sprachübergreifende Themen verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    Wenn es um C# geht, dann gehört der Thread in die sonstigen Problemstellungen, nicht in die weiteren Sprachen (weil C# ist ja keine weitere Sprache). Deshalb gibts hier auch kein C#-Label.

    Die Warnung kommt, weil du die Konstanten nicht den Framework Guidelines entsprechend benannt hast, der korrekte Name ist im zweiten Satz angegeben.
    Oh :P. Ja es geht um C#. Bin bisschen verwirrt von dem neuen Forum :/. Hoffe man nimmt mir das hier nicht Krumm. Entschuldigung!

    Framework Guidelines.. Hör ich um ehrlich zu sein Heute zum ersten mal. Werd mich mal darüber Informieren. Also müsste ich Theoretisch das Austauschen weil es nicht "konform" ist richtig? Weil die definierung kommt ja eigentlich von der Importieren DLL. Deswegen dachte ich das MOD_NONE schon so richtig wäre. Naja man lernt halt immer was dazu.
    Die Namensgebungen sind nur Vorschläge. Bei nem ClosedSource-Programm kann dir das eigentlich komplett egal sein, bei ner DLL solltest du die nach außen sichtbaren Member korrekt benennen. Entwickelst du OpenSource oder möchtest auch nur wenigen anderen Personen Zugriff auf den Code geben, sollte man sich aber schon durchgehend dran halten.
    Genau genommen sollte man sich immer dran halten, denn die Leute bei MS haben sich viel Gedanken darüber gemacht, wie der Quellcode am lesbarsten wird. Es gibt allerdings auch Ausnahmen, und in diesem Fall könnte man das durchaus als eine durchgehen lassen, weil die Namen ja aus externem Code stammen. Die konforme Variante wäre aber, ein Enum zu erstellen, das diese ganzen Werte enthält:

    C#-Quellcode

    1. public enum ModKey
    2. {
    3. None = 0x0,
    4. Control = 0x2,
    5. Shift = 0x4,
    6. }

    Die Guidelines findest du hier: msdn.microsoft.com/en-us/library/ms229042.aspx
    Klasse. Ich kenn Enum, und hab sich auch schon oft benutzt. Aber um ehrlich zu sein in diesem Fall nicht daran gedacht. Danke für den Vorschlag! Und natürlich auch für die anderen Informationen. Werd mir gleich mal die Guidelines durchlesen.

    Dann wären hiermit meine Fragen gelöst!