Mein Code ist wie folgt:eine generische Klasse erstellen generische Erweiterung mit Ausdruck <T,bool> Methode
public partial class WhereHelper<T1> { }
public static partial class WhereHelperExtension
{
public static T Where<T,T1>(this T t, Expression<Func<T1,bool>> where) where T : WhereHelper<T1>
{
//do something....
return t;
}
}
public class Test
{
public void Main()
{
WhereHelper<DateTime> dt = new WhereHelper<DateTime>();
dt.Where(t => t.Year == 2016);//this is error
dt.Where<WhereHelper<DateTime>, DateTime>(t => t.Year == 2016);//this is success
}
}
Erweiterung Methode, die ich so sein wollen:
WhereHelper<DateTime> dt = new WhereHelper<DateTime>();
dt.Where(t => t.Year == 2016);//this is error
wie generische Erweiterung mit Expression Methode erstellen . Visual Studio erkennt die Erweiterungsmethoden "Where" nicht.
Was ist der Fehler? – Rob
Visual Studio erkennt die Erweiterungsmethoden "Where" nicht. –
Aus dem angezeigten Code ist mir nicht klar, was diese Erweiterung tatsächlich tun soll und welchen _type_ es sich erstrecken soll. Sie geben t zurück, was bedeutet, dass Sie die Instanz zurückgeben, die Sie eigentlich erweitern möchten? Bitte bearbeiten Sie Ihre Frage und erklären Sie, was Sie erreichen möchten. Was macht 'Where' an einer einzelnen' DateTime'? –