2013-07-11 5 views
-4

좋은 하루,C# 확장 일반 메서드

일반적인 방법을 확장 할 수있는 방법이 있습니까?

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

이 확장이 가능하다 :

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

내가 원하는 것은 방법 같은 확장하는 것입니다 수 :

예를

에 대한 내가 그런 방법이 있나요?

편집 :. 내가 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