c# Methodenverkettung in C #





4 Answers

Benutze diesen Trick:

public class MyClass
{
    private List<MyItem> _Items = new List<MyItem> ();

    public MyClass AddItem (MyItem item)
    {
        // Add the object
        if (item != null)
            _Items.Add (item)

        return this;
    }
}

Es gibt die aktuelle Instanz zurück, die es Ihnen ermöglicht, Methodenaufrufe zu verketten (und so mehrere Objekte gleichzeitig hinzuzufügen).

c#

Ich habe eigentlich keine Ahnung, wie das in C # heißt. Aber ich möchte die Funktionalität zu meiner Klasse hinzufügen, um mehrere Elemente gleichzeitig hinzuzufügen.

myObj.AddItem(mItem).AddItem(mItem2).AddItem(mItem3);



Andere haben in Bezug auf die direkte Methodenverkettung geantwortet, aber wenn Sie C # 3.0 verwenden, könnten Sie an Auflistungsinitialisierer interessiert sein ... sie sind nur verfügbar, wenn Sie einen Konstruktoraufruf ausführen, und nur dann, wenn Ihre Methode über geeignete Add Methoden verfügt Implementiert IEnumerable , aber dann können Sie IEnumerable tun:

MyClass myClass = new MyClass { item1, item2, item3 };



Wie wäre es mit

AddItem(ICollection<Item> items);

oder

AddItem(params Item[] items);

Sie können sie so benutzen

myObj.AddItem(new Item[] { item1, item2, item3 });
myObj.AddItem(item1, item2, item3);

Dies ist keine Methodenverkettung, aber es fügt Ihrem Objekt mehrere Objekte in einem Aufruf hinzu.




Wenn Ihr Element als Liste fungiert, möchten Sie möglicherweise eine Schnittstelle wie iList oder iEnumerable / iEnumerable implementieren.

Unabhängig davon, der Schlüssel zum Verketten von Anrufen, wie Sie möchten, ist die Rückgabe des gewünschten Objekts.

public Class Foo
{
   public Foo AddItem(Foo object)
   {
        //Add object to your collection internally
        return this;
   }
}



Related


Tags

c#