2016-08-09 35 views
0

Ich habe folgend:eine Enum mit einer Nummer am Anfang Erstellen

public enum Size 
{ 
    XXS, 
    XS, 
    S, 
    M, 
    L, 
    XL, 
    1XL, 
    2XL, 
    3XL, 
    4XL, 
    5XL, 
    6XL 
} 

Die Enum für einen DB ist und ich brauche es in diesem Format (nvarchar) in die DB zu gehen, habe ich nicht erstellt diese DB-Tabelle.

Fehler 30 Typ oder Namespace-Definition oder End-of-Datei erwartet

Ich weiß, es ist, weil es eine Reihe am Anfang ist, ist es trotzdem, diese Runde, andere als einen Schalter zu tun Aussage oder etwas?

UPDATE:

Diese für eine Google Feed ist, benötigen sie die Werte wie unten zur Verfügung gestellt werden, ist dies nicht unsere Namenskonvention

Antwort

3

C# Bezeichnernamen kann nicht mit Numerik beginnen. Wie wäre es mit dem Rendern der Zahlen als Wörter? XL, TwoXL, DreiXL, FourXL und so weiter?

+1

Auch Ihre Namenskonvention in dieser Aufzählung ist inkonsistent. Warum ist es XXS aber 2XL? – Matt

+0

Dies ist für einen Google Feed, dies ist nicht unsere Namenskonvention –

+0

Ich müsste eine Art Konvertierung durchführen, um den Wert Google –

1

Sie können keinen Bezeichner definieren Name beginnt mit einem digit, das erste Zeichen muss ein Buchstabe oder ein Unterstrich sein. Hier versuchen Sie, die Grundregel zum Definieren eines Bezeichners zu überschreiben. Lassen Sie mich die Regeln noch einmal erinnern:

  • Ein Bezeichner ist eine Folge von Buchstaben, Ziffern und Unterstrich.
  • Der erste Zeichen muss ein Buchstabe oder ein Unterstrich
  • Schlüsselwörter als ein Bezeichner nicht verwendet werden kann, da es von der Sprache Compiler reserviert.

Die möglichen Erklärungen für Sie:

beginnen mit einem Unterstrich

public enum Size 
{ 
    _XXS,   
    _1XL, 
} 

Verwenden Sie Wörter anstelle für Ziffern

public enum Size 
{ 
    _XXS,   
    oneXL, 
} 
+0

zu erhalten, würde ich noch eine Entfernung des _ vor dem Einfügen in die DB –

0

Werfen Sie einen Blick hier, vielleicht haben Sie kann dieses Problem mit DataAnnota umgehen . Siehe diese Lösung: How to get the Display Name Attribute of an Enum member via MVC razor code?

+0

denke ich tun müssen Ich brauche die 'Beschreibung'? –

+0

Sie benötigen dies für jeden von Ihnen deklarierten Enum-Wert. '[Display (Name =" 3XL ")]' für zB ThreeXL. In der verknüpften Frage können Sie sehen, wie Sie es lesen können. –