Looking for c# Answers? Try Ask4KnowledgeBase
Looking for c# Keywords? Try Ask4Keywords

C# Language Utilisation d'une méthode d'extension pour l'initialisation de la collection


Exemple

La syntaxe d'initialisation de la collection peut être utilisée lors de l'instanciation de toute classe qui implémente IEnumerable et possède une méthode nommée Add qui prend un seul paramètre.

Dans les versions précédentes, cette méthode Add devait être une méthode d' instance sur la classe en cours d'initialisation. En C # 6, cela peut aussi être une méthode d'extension.

public class CollectionWithAdd : IEnumerable
{
    public void Add<T>(T item)
    {
        Console.WriteLine("Item added with instance add method: " + item);
    }

    public IEnumerator GetEnumerator()
    {
        // Some implementation here
    }
}

public class CollectionWithoutAdd : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        // Some implementation here
    }
}

public static class Extensions
{
    public static void Add<T>(this CollectionWithoutAdd collection, T item)
    {
        Console.WriteLine("Item added with extension add method: " + item);
    }
}

public class Program
{
    public static void Main()
    {
        var collection1 = new CollectionWithAdd{1,2,3}; // Valid in all C# versions
        var collection2 = new CollectionWithoutAdd{4,5,6}; // Valid only since C# 6
    }
}

Cela va sortir:

Elément ajouté avec la méthode d'instance ajouter: 1
Elément ajouté avec la méthode d'instance ajouter: 2
Elément ajouté avec la méthode d'instance ajouter: 3
Article ajouté avec l'extension add method: 4
Élément ajouté avec l'extension add method: 5
Article ajouté avec l'extension add method: 6