C# Language Méthodes d'extension pour la gestion de cas particuliers


Exemple

Les méthodes d'extension peuvent être utilisées pour "masquer" le traitement de règles métier inélégantes qui nécessiteraient autrement d'encombrer une fonction d'appel avec les instructions if / then. Ceci est similaire et analogue à la gestion des valeurs NULL avec les méthodes d'extension. Par exemple,

public static class CakeExtensions
{
    public static Cake EnsureTrueCake(this Cake cake)
    {
        //If the cake is a lie, substitute a cake from grandma, whose cakes aren't as tasty but are known never to be lies. If the cake isn't a lie, don't do anything and return it.
        return CakeVerificationService.IsCakeLie(cake) ? GrandmasKitchen.Get1950sCake() : cake;
    }
}
Cake myCake = Bakery.GetNextCake().EnsureTrueCake();
myMouth.Eat(myCake);//Eat the cake, confident that it is not a lie.