我的应用程序应该读取一个未缩进的C# 代码示例,然后以编程方式缩进代码。我这样做的方式可能不正确,但仍然可以取得部分结果。
我可以在找到 a 时设置空格,{
然后继续使用相同数量的空间来读取其余行。当再次{
找到另一个时,添加空格并继续使用这个新的空间作为其余行。为此,这就是我所做的:
private void btn_format_Click(object sender, EventArgs e)
{
string lineInfo = "";
string fl = "";
string ctab= char.ConvertFromUtf32(32)+char.ConvertFromUtf32(32)+char.ConvertFromUtf32(32);
foreach (string line in txt_codepage.Lines) // text_codepage is a textbox with code
{
if (line.Contains("{"))
{
string l = line.Replace("{", ctab+"{");
lineInfo = lineInfo + (l + "\n");
fl = fl + ctab;
ctab = ctab + ctab;
}
else
{
lineInfo = lineInfo + (char.ConvertFromUtf32(32)+fl+ line + "\n");
}
我可以达到我想要的正确缩进到这里。现在,当我找到一个}
我应该做相反的过程但不幸的是,这是不可能的字符串。我的意思的相反过程是这样的:
if (line.Contains("}"))
{
string l = line.Replace(ctab + "}", "}");
lineInfo = lineInfo + (l + "\n");
fl = fl - ctab;
ctab = ctab - ctab;
}
else
{
lineInfo = lineInfo - (char.ConvertFromUtf32(32) + fl + line + "\n");
}
}
MessageBox.Show(lineInfo.ToString());
我知道代码的上述部分是一个完整的错误,但让我知道如何以正确的方式实现它