2016-07-15 86 views
1

我已阅读在c# language specification“一一一对应与文件系统中的文件”

源文件通常具有与文件系统中的文件一到一一对应,但这种通信不是必需的

这究竟意味着什么?

+0

有趣的是,我发现了其他编程语言的类似定义,其中“源文件”一词被“编译单元”所取代。这个术语在C#语言定义中也提到过,但这里没有用到,尽管我认为它会更有意义。 –

+0

我猜想作者想指出“你看到的不一定是内部文件”,反之亦然。因为你可能看不到的东西(新行可以是\ n或\ n \ r或者\ r \ n,这个你没有看到),但是问题在于使用特殊字符(不可见的字符)在字符串文字中。 – Sinatr

回答

1

随着前行,它说:

源文件是Unicode字符的有序序列

这意味着“源文件”并不一定是一个文件上文件系统。它可以是任何代表UTF-16中字符的旧字节流。它可能来自记忆流,网络或任何旧地方。但通常是它是文件系统上的文件。

0

我认为它的字面意思是每个源文件都由系统上的单个文件表示。

例如,说我有一些源代码:

Using System; 

namespace Test 
{ 
    public class Program 
    { 
     private static void Main (string[] args) 
     { 
      Console.WriteLine("Hello World!"); 
     } 
    } 
} 

这可以保存到文件系统作为Program.cs。我们现在有一些源代码正在由系统上的单个文件表示。

,但这种对应关系不是必需的

表明,一个源文件并不总是存在于系统上。例如,源代码可以作为“Unicode字符序列”存在,而不是存储在内存中的某个位置。

0

使用visual studio,您可以“链接”项目中的源文件。 如果将源文件放置在项目中,并将不同项目中的同一个源文件链接起来(即在两个不同的项目中共享相同的源代码),则会有2个源文件链接到单个文件。

我通常是在有一个以上的项目解决方案使用此功能:共享源代码是这样的:

[assembly: AssemblyVersion("1.2.3.0")] 
[assembly: AssemblyFileVersion("1.2.3.0")] 

所以遵守的时候,我的解决方案的每个组件都有相同的版本号。