erstes Codebeispiel zu verlängern:Wie Methode von Eltern und Kind mit dem gleichen Namen
public class Parent
{
}
public static class ParentExtension
{
public static void DoSomething<T>(this T element) where T : Parent
{
...
}
}
public class Child : Parent
{
}
public static class ChildExtension
{
public static void DoSomething<T>(this T element) where T : Child
{
...
}
}
//Trying to call child extension class
var child = new Child();
child.DoSomething(); //Actually calls the parent extension method even though it is a child class
So ist es möglich, zu erreichen, was ich hier tue? Ich ging davon aus, dass die spezifischste Erweiterung übernommen würde, aber das ist eindeutig nicht der Fall.
Wenn Sie es die übergeordneten Erweiterungsmethode aufgerufen werden sollen, tut, warum das Kind ein selbst existieren?? –
Dies kann Dinge für Sie klären: https://blogs.msdn.microsoft.com/ericlippert/2009/12/10/constraints-are-not-part-of-the-signature/ – NWard
[Dies] (http://stackoverflow.com/questions/31788804/how-to-hide-extension-methods-from-derived-classes?rq=1) scheint relevant zu sein. –