2013-07-11 4 views
-4

Добрый день,C# Расширение общего метода

Есть ли способ расширить общий метод? , например

у меня есть такой метод:

public T DoSomethingAboutIt<T>() 
{ 
//do magic 
} 

то, что я хочу, чтобы иметь расширенный метод , такие как:

private static T Extended<T, L>(this T o, Func<T, L> func) 
{ 
    return default(T); 
} 

Является ли это расширение возможно?

редактировать: я хотел бы назвать его как-то этого DoSomethingAboutIt() Расширенная ...

+0

Конечно, это возможно. В чем твоя проблема? –

+0

На самом деле не уверен, что вы просите. Я думаю, что это возможно. Вы попробовали это и получили сообщение об ошибке? – Tim

+0

Ну, я пробовал, конечно, просто не работает. Я хотел бы знать, как это сделать. Не могли бы вы перенаправить меня куда-нибудь, где я мог бы начать? – Weazel

ответ

0

Это возможно, но вы все равно должны следовать правилам Extension Methods (MSDN)..

Этот код компилируется нормально ...

internal class Program 
{ 
    private static void Main(string[] args) 
    { 
     int y = 1; 
     int z = y.Extended(n => "hi!"); 
    } 
} 

public static class X 
{ 
    public static T Extended<T, L>(this T o, Func<T, L> func) 
    { 
     return default(T); 
    } 
} 
+0

Да, это действительно работает, спасибо. Наверное, я уже устал ... Моя благодарность – Weazel

Смежные вопросы