2013-09-11 2 views
0

Я использовал код, но получаю ошибку i.e
Методы расширения должны быть определены в статическом классе верхнего уровня; StringHelpers является вложенным классомЗаменить ID1: Value1 .......... с ID1: NewValue1

namespace Figreplace2 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      FileInfo n = new FileInfo(textBox1.Text); 

      StringBuilder newFile = new StringBuilder(); 

      string temp = " "; 

      string[] file = File.ReadAllLines(textBox1.Text); 
     } 

    public static class StringHelpers 
    { 
     public static string Replace(this string s) 
     { 
      Dictionary<string, string> replacements = new Dictionary<string, string>(); 

      //replacements.Add("ID1", "NewValue"); 
      replacements.Add("ID2", "NewValue2"); 
      // ... further replacement entries ... 

      foreach (string line in file) 
      { 
       bool replacementMade = false; 
       foreach (var replacement in replacements) 
       { 
        if (line.StartsWith(replacement.Key)) 
        { 
         string newString = s; 
         temp = line.Replace(string.Format("{0} :{1}", replacement.Key, replacement.Value)); 

         newFile.Append(temp + "\r\n"); 

         continue; 
         return newString; 
        } 
        newFile.Append(line + "\r\n"); 

        replacementMade = true; 

        // break; 

       } 
       if (!replacementMade) 
       { 
        File.WriteAllText(@"D:\madhu\test2\23.txt", newFile.ToString()); 
       } 

      } 
     } 



    } 
} 
+1

В чем вопрос? –

+0

вы должны принять ответ ... –

ответ

1

Сообщение об ошибке довольно ясно: вам нужно переместить декларацию StringHelpers из Form1 класса (скорее всего, в новом файле StringHelpers.cs).

NB: «вложенный» класс является классом «внутри» другого класса, его нельзя использовать для методов расширения.

1

В сообщении об ошибке говорит: «Метода расширения должна быть определена в статическом классе верхнего уровня; StringHelpers является вложенным классом:.. Form1

namespace Figreplace2 
{ 
    public partial class Form1 : Form 
    { 
     // get it out of this class 
    } 

    public static class StringHelpers 
    { 
     public static string Replace(this string s) 
     { 
      // ... 
     } 
    } 
} 
2

всего ваш StringHelpersReplace метод перепутался

что file, temp, newFile?

они используются, но Не определено

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