2016-07-15 66 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")] 

所以遵守的時候,我的解決方案的每個組件都有相同的版本號。

相關問題