Delegierte auf iOS können optionale Methoden haben. Da die Schnittstelle IXXDelegate
nur die nicht-optionalen Funktionen deklariert, implementiert XXXDelegate
nur die nicht-optionalen Funktionen. Das XXXDelegate_Extention
fügt die optionalen-Funktionen zu dem Delegaten (Schnittstelle) hinzu. Sie können also entweder von XXXDelegate
erben oder IXXXDelegate
komplett auf eigene Faust implementieren. Ich würde es vorziehen, zu erben, es sei denn, Sie benötigen wirklich eine vollständig benutzerdefinierte Implementierung.
Erweiterungsmethoden in C# sind Methoden, die wie Instanzmethoden aufgerufen werden können, aber nicht innerhalb des Typs dieser Instanz deklariert sind.
Beispiel auf Erweiterungsmethoden
public class MyClass
{
public int Foo(int a)
{
return a + 1;
}
}
public static class MyClassExtension
{
public static int Bar(this MyClass my, int a)
{
return my.Foo(a+1);
}
}
var x = new MyClass();
x.Foo(2); // returns 3
x.Bar(2); // returns 4
Weitere Informationen: https://msdn.microsoft.com/en-us//library/bb383977.aspx
Weicht man zum Beispiel? –
Wie WebKit.WKNavigationDelegate_Extensions? – Student222