线路结束不一致错误

时间:2011-04-17 14:48:03

标签: c# .net vb.net

我写了一个用于自动生成一些代码行的软件。然而,当我再次重新打开它后,我在一个类中复制并粘贴该代码时,我面对一个不一致的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

2 个答案:

答案 0 :(得分:4)

我有点不确定问题的确切位置,但看起来你正在用C#构建VB.Net代码,并且你在VB中获得了该代码的不一致行结束错误。

好的,所以尝试的一些想法可能会有所帮助:

  1. 不要使用CrLf - 这是向后兼容的事情。使用Environment.NewLine

  2. 您的示例不是完整的可编译代码块,您错误的备用新行字符可能来自代码的其他部分。

  3. Visual Studio通常会自动修复不一致的行结尾,例如,如果您通过网络传输代码段。你将代码粘贴到什么地方?

  4. 不要在字符串中使用大量+=,而是使用StringBuilder实例。您还可以使用包含TextWriter方法的StreamWriterWriteLine

  5. 或者更好的是,.Net的负载为CodeDom stuff,可以通过指定所需内容而不是原始代码来构建代码。

答案 1 :(得分:0)

根据您实际收到错误的位置(打开上面发布的代码或打开上面代码生成的代码时),我建议您使用十六进制编辑器打开文件并检查是否所有行结尾适合“0D 0A”。
如果你正在使用任何其他平台,那么windows(linux,mac)你需要的行结尾是不同的。
看看on Wikipedia,确保您使用正确的结尾。