我写了一个用于自动生成一些代码行的软件。然而,当我再次重新打开它后,我在一个类中复制并粘贴该代码时,我面对一个不一致的Line Ending Erros。 怎么会这样?问题出在哪里,我该如何解决?它是关于carriege返回和换行。 该类的样本:
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
答案 0 :(得分:4)
我有点不确定问题的确切位置,但看起来你正在用C#构建VB.Net代码,并且你在VB中获得了该代码的不一致行结束错误。
好的,所以尝试的一些想法可能会有所帮助:
不要使用CrLf
- 这是向后兼容的事情。使用Environment.NewLine
您的示例不是完整的可编译代码块,您错误的备用新行字符可能来自代码的其他部分。
Visual Studio通常会自动修复不一致的行结尾,例如,如果您通过网络传输代码段。你将代码粘贴到什么地方?
不要在字符串中使用大量+=
,而是使用StringBuilder
实例。您还可以使用包含TextWriter
方法的StreamWriter
或WriteLine
。
或者更好的是,.Net的负载为CodeDom stuff,可以通过指定所需内容而不是原始代码来构建代码。
答案 1 :(得分:0)
根据您实际收到错误的位置(打开上面发布的代码或打开上面代码生成的代码时),我建议您使用十六进制编辑器打开文件并检查是否所有行结尾适合“0D 0A”。
如果你正在使用任何其他平台,那么windows(linux,mac)你需要的行结尾是不同的。
看看on Wikipedia,确保您使用正确的结尾。