<p>Nous aimons utiliser des <strong>proprietes dans une classe</strong> au lieu de methodes, car elles ressemblent davantage a un enum.</p>
<p>Voici un exemple pour un Logger :</p>
<pre><code class="lang-auto">public class LogCategory
{
private LogCategory(string value) { Value = value; }
public string Value { get; private set; }
public static LogCategory Trace { get { return new LogCategory("Trace"); } }
public static LogCategory Debug { get { return new LogCategory("Debug"); } }
public static LogCategory Info { get { return new LogCategory("Info"); } }
public static LogCategory Warning { get { return new LogCategory("Warning"); } }
public static LogCategory Error { get { return new LogCategory("Error"); } }
public override string ToString()
{
return Value;
}
}
</code></pre>
<p>Passez des <strong>valeurs de chaine type-safe</strong> comme parametre :</p>
<pre><code class="lang-auto">public static void Write(string message, LogCategory logCategory)
{
var log = new LogEntry { Message = message };
Logger.Write(log, logCategory.Value);
}
</code></pre>
<p>Utilisation :</p>
<pre><code class="lang-auto">Logger.Write("This is almost like an enum.", LogCategory.Info);
</code></pre>