J'ai ce code Enum :
enum Duration { Day, Week, Month };
Puis-je ajouter une méthode d'extension pour cette Enum ?
J'ai ce code Enum :
enum Duration { Day, Week, Month };
Puis-je ajouter une méthode d'extension pour cette Enum ?
Vous pouvez créer une extension pour n'importe quoi, même object
(bien que ce soit non considéré comme une meilleure pratique ). Comprenez une méthode d'extension comme une public static
méthode. Vous pouvez utiliser le type de paramètre de votre choix pour les méthodes.
public static class DurationExtensions
{
public static int CalculateDistanceBetween(this Duration first, Duration last)
{
//Do something here
}
}
Voir MSDN .
public static class Extensions
{
public static string SomeMethod(this Duration enumValue)
{
//Do something here
return enumValue.ToString("D");
}
}
Nous venons de réaliser une extension enum pour c# https://github.com/simonmau/enum_ext
C'est juste une implémentation pour le typeafeenum, mais cela fonctionne très bien et nous avons créé un paquet pour le partager - amusez-vous avec.
public sealed class Weekday : TypeSafeNameEnum<Weekday, int>
{
public static readonly Weekday Monday = new Weekday(1, "--Monday--");
public static readonly Weekday Tuesday = new Weekday(2, "--Tuesday--");
public static readonly Weekday Wednesday = new Weekday(3, "--Wednesday--");
....
private Weekday(int id, string name) : base(id, name)
{
}
public string AppendName(string input)
{
return $"{Name} {input}";
}
}
Je sais que l'exemple est plutôt inutile, mais vous voyez l'idée ;)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.