行尾不一致错误
本文关键字:错误 不一致 | 更新日期: 2023-09-27 17:50:19
我编写了一个自动生成一些代码行的软件。但是,当我在重新打开后对该类中的代码进行复制和粘贴时,我遇到了不一致的行结束错误。这是怎么回事?问题出在哪里,我该如何解决?这是关于换行和换行。该类的示例:
txtResult.Text += " End Get" + CrLf
txtResult.Text += " Set(ByVal Value As " + GeneratePropertyCast(para.DbType) + ")" + CrLf
txtResult.Text += " Item("
txtResult.Text += GeneratePropertyColumn(para.ParameterName) + ")= Value" + CrLf
txtResult.Text += " End Set" + CrLf
txtResult.Text += "End Property" + CrLf
我有点不清楚问题到底在哪里,但看起来你正在构建VB。Net代码在c#中,你得到不一致的行结束错误的代码在VB中。
好的,那么试试这些想法可能会有帮助:
-
不要使用
CrLf
-这是向后兼容的事情。使用Environment.NewLine
-
你的例子不是一个完整的可编译代码块,你错误的替代新行字符可能来自你的代码的另一部分。
-
Visual Studio通常会自动修复不一致的行尾,例如,如果您从web传递了一个片段。你将代码从哪里粘贴到哪里?
-
不要在字符串中使用大量的
+=
,而是使用StringBuilder
实例。您也可以使用包含WriteLine
方法的TextWriter
或StreamWriter
。 -
或者,更好的是,. net有一大堆CodeDom的东西,让你通过指定你想要的东西来构建代码,而不是原始代码。
根据您实际得到错误的地方(当打开上面发布的代码时,或者当打开上面代码生成的代码时),我建议您使用十六进制编辑器打开文件并检查是否所有行结尾都适合"0D 0A"。
如果你在windows (linux, mac)上工作,你需要的行尾是不同的。
查看一下维基百科,确保你使用了正确的结尾。