2009-01-01 14 views
9

Sind alle Enumerationskonstanten? Erhalten sie konvertiert zu ihrem Wert zur Kompilierzeit oder zur Laufzeit?C# - sind alle Enum-Konstanten?

+0

Ich kann mir nicht vorstellen, warum jemand diese Frage ablehnen würde. – AnthonyWJones

+0

Vielleicht weil er dachte, dass jemand diese Frage mit Google beantworten könnte und sollte das zuerst versuchen. Ich persönlich bin noch nicht zu dem Schluss gekommen, wo ich die Grenze ziehen soll, aber IMHO sollte es eine Linie geben. –

+0

Googles powered by Websites wie diese so einfache Fragen wie diese sind in Ordnung für mich. Ich würde diese den albernen Umfragen sehr vorziehen. –

Antwort

16

Sie sind konstant. Ja, Kompilierzeit.

Referenz: http://msdn.microsoft.com/en-us/library/sbbt4032.aspx

Aus dem Intro:

Das Schlüsselwort enum eine Aufzählung zu erklären, verwendet wird, eine deutliche Art, dass besteht aus einer Reihe von benannte Konstanten genannt Aufzählungsliste.

Unter „Robuste Programmierung“:

Genau wie bei jedem konstant, alle Verweisen auf die einzelnen Werte von eine Enumeration ist bei der Kompilierung auf numerisch Literale umgewandelt. Dies kann potenzielle Probleme bei der Versionsverwaltung als beschrieben in Konstanten (C# Programmierung Guide) erstellen.

6

Enum-Werte sind Konstanten, sie können sich nicht ändern.

Ihre Werte werden zur Kompilierzeit festgelegt.