我已阅读c# 语言规范:
源文件通常与文件系统中的文件一一对应,但这种对应不是必需的
这到底是什么意思?
正如前面的那行所说:
源文件是有序的 Unicode 字符序列
这意味着“源文件”不一定是文件系统上的文件。它可以是表示 UTF-16 字符的任何旧字节流。它可能来自内存流、网络或任何旧地方。但通常它是文件系统上的一个文件。
我认为它的字面意思是每个源文件都由系统上的单个文件表示。
例如,假设我有一些源代码:
Using System;
namespace Test
{
public class Program
{
private static void Main (string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
这可以作为Program.cs
. 我们现在有一些源代码,它们由系统上的单个文件表示。
但不需要此信函
表明系统上并不总是存在源文件。例如,源可以作为“Unicode 字符序列”存在,而可以存储在内存中的某个位置。
使用 Visual Studio,您可以“链接”项目中的源文件。如果您将源文件放在一个项目中,并将相同的源文件链接到不同的项目中(即在 2 个不同的项目中共享相同的源代码),您最终会将 2 个源文件链接到一个文件。
我通常在具有多个项目的解决方案中使用此功能:共享源代码如下所示:
[assembly: AssemblyVersion("1.2.3.0")]
[assembly: AssemblyFileVersion("1.2.3.0")]
因此,当编译时,我的解决方案中的每个程序集都具有相同的版本号。