问题
Possible Duplicates:
C# -Generic Extension Method
How do you write a C# Extension Method for a Generically Typed Class
Is it possible to declare extension methods for generic classes?
public class NeedsExtension<T>
{
public NeedsExtension<T> DoSomething(T obj)
{
// ....
}
}
回答1:
To extend any class
public static class Extensions
{
public static T DoSomething<T>(this T obj)
{
//...
}
}
To extend a specific generic class
public static NeedExtension<T> DoSomething<T>(this NeedExtension<T> obj)
{
//...
}
回答2:
Yes, but you forgot the this
keyword. Look at Queryable that provides all the LINQ operators on collections.
回答3:
Sure
public static void SomeMethod<T>(this NeedsExtension<T> value) {
...
}
回答4:
How do you write a C# Extension Method for a Generically Typed Class
public static class NeedsExtension<T>
{
public static string DoSomething <T>(this MyType<T> v)
{ return ""; }
// OR
public static void DoSomething <T>(this MyType<T> v)
{
//...
}
}
来源:https://stackoverflow.com/questions/2292597/extension-method-for-generic-class