我使用了一个代码但得到了一个错误,即
必须在顶级静态类中定义扩展方法; StringHelpers
是嵌套类
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());
}
}
}
}
}
答案 0 :(得分:1)
错误消息非常明确:您需要将StringHelpers
的声明移出Form1
类(最有可能是新文件StringHelpers.cs
)。
注意:“嵌套”类是另一个类“内部”的类,不允许使用扩展方法。
答案 1 :(得分: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 :(得分:1)
您的整个StringHelpers
Replace
方法搞砸了。
什么是file
,temp
,newFile
?
他们被使用但未定义