C# 对不一致的行尾说是吗?

C# 对不一致的行尾说是吗?,c#,unity3d,visual-studio-2013,cross-platform,line-endings,C#,Unity3d,Visual Studio 2013,Cross Platform,Line Endings,我正在Unity中构建一个游戏,并使用Visual Studio 2013作为默认IDE。每当我创建一个文件时,它都会询问我是否要规范化行尾,因为行尾不一致(这里的详细信息:) 我应该说是还是不是? 我最好的猜测是,如果我说“是”,它将清除Windows不关心的Mac和Linux内容,因此它将只在Windows上运行。我对选择“否”的最佳猜测是,它将保持代码在所有三个平台上运行,而不会影响其他两个平台。这是否正确?对于大多数用例来说,这并不重要。你可能会使用VS或MonoDevelop。两者都可

我正在Unity中构建一个游戏,并使用Visual Studio 2013作为默认IDE。每当我创建一个文件时,它都会询问我是否要规范化行尾,因为行尾不一致(这里的详细信息:)

我应该说是还是不是?


我最好的猜测是,如果我说“是”,它将清除Windows不关心的Mac和Linux内容,因此它将只在Windows上运行。我对选择“否”的最佳猜测是,它将保持代码在所有三个平台上运行,而不会影响其他两个平台。这是否正确?

对于大多数用例来说,这并不重要。你可能会使用VS或MonoDevelop。两者都可以处理不同的行尾。只有当您打算使用一些对行尾样式敏感的编辑器时,这才重要。

在项目中工作时,您是否有可能在IDE和/或操作系统之间切换,或者您是否与其他人一起工作

如果是这样的话您需要关心项目文件的行尾,更改它们可能不是一个好主意,因为其他IDE可能无法理解它们。 然而,每当你打开一个文件时就会弹出这个消息,这对@ss来说是一件痛苦的事。您可以将此行为切换到:

工具->选项->文档->检查加载时的行结束符是否一致


如果没有您可以更改它们,无论游戏运行在哪个平台,您都不会遇到任何问题。在使用Unity时,我只使用Visual Studio 2013 w/Windows 8.1,每次都会规范化行尾。即使在不同的平台上运行游戏,我也从来没有遇到过问题。我想这只会影响代码编辑器和编译器工具。编译后,行尾不再重要。

单击“是”将更改所有行尾,但如果不在基于Windows的系统上编译,可能会导致不兼容。单击“否”将不起任何作用,并将保留任何不正确/不一致的行尾;可以在其他系统上编译,也可以不在其他系统上编译。太长,读不下去了如果您打算只在Windows上编译,请单击“是”,否则请单击“否”。我打算让游戏在Windows、mac和linux上运行。有什么建议可以选择吗?这对你打算在哪里运行游戏几乎没有影响(最坏的情况是,它可能会产生奇数堆栈跟踪)。行尾只对编译器有影响。如果您在Linux/Mac上编译游戏,那么您将需要与两者兼容的行尾。一旦游戏被编译/构建,行尾就不再重要了。Re“更改行尾可能是个坏主意”:您是否理解只有当文件中的行尾不一致时才会出现此消息?也就是说,一个文本文件,其中一些行以(仅限LF)结尾,其他行以(CrLf)结尾。唯一一次说“是”会引起问题的是,如果你有一个(很罕见的)情况,文本需要混合。例如,您的源代码需要是(CrLf),但您有一个文本字符串需要是(仅限LF)。在进行规范化时,是否应该选择Windows(CrLf)的默认选项以外的内容是另一个主题。