2014-12-13 1 views
-2

아래 코드를 작성할 때. 내 확장 방법을 선택할 수 없습니다. 나타나지 않습니다. 나는 내 실수를 찾지 못하는 것 같습니다. 미리 감사드립니다. 당신이 당신의 확장 방법은 string에하고 싶으신 같은하위 문자열 C에 대한 확장 방법

public static class Extensions 
{ 
    public static string MySubstring(
     this int index, int length) 
    { 
     StringBuilder sb = new StringBuilder(); 

     return sb.ToString(index, length); 
    } 
} 

class SubstringExtension 
{ 
    static void Main() 
    { 
     string text = "I want to fly away."; 
     string result = text. 
    } 
} 
+3

당신은 애를 만들고 싶어 'int'에 대해 xtension 메소드를 호출하지만'string'에 대해 호출하려고합니다. – Jcl

+1

그리고 MySubstring의 코드는 의미가 없습니다. 귀하의 확장 방법은 무엇을하기로되어 있습니까? – Steve

+0

@Steve, 그것을 추가하려했습니다 :-) – Jcl

답변

3

같습니다, 그래서 당신은 다음과 같이 확장 방법에 해당 문자열에게 this 매개 변수를 확인해야합니다 :

void Main() 
{ 
    string text = "I want to fly away."; 
    string result = text.MySubstring(1, 5); 
    Console.WriteLine(result); 
} 

// Define other methods and classes here 
public static class Extensions 
{ 
    public static string MySubstring(
     this string str, int index, int length) 
    { 
     StringBuilder sb = new StringBuilder(str); 

     return sb.ToString(index, length); 
    } 
} 

결과 :

+0

답변 해 주셔서 감사합니다. 그것은 효과가 있었다. :) 나는 배울 것이 많습니다 ... – codeAddicted

+1

@codeAddicted : 기꺼이 도와 드리겠습니다. 다른 사람들이 도움이 필요 없다는 것을 알 수 있도록 질문에 답을 표시해주십시오. :-) – StriplingWarrior