C# &引用;与文件系统中的文件进行一对一的通信;
我在报纸上读到: 源文件通常与文件系统中的文件有一对一的对应关系,但这种对应关系不是必需的C# &引用;与文件系统中的文件进行一对一的通信;,c#,specifications,language-specifications,C#,Specifications,Language Specifications,我在报纸上读到: 源文件通常与文件系统中的文件有一对一的对应关系,但这种对应关系不是必需的 这到底是什么意思?正如前面的一行所说: 源文件是Unicode字符的有序序列 这意味着“源文件”不一定必须是文件系统上的文件。它可以是表示UTF-16中字符的任何旧字节流。它可以来自内存流,也可以来自网络,也可以来自任何老地方。但通常它是文件系统中的一个文件。我认为它的字面意思是每个源文件都由系统中的一个文件表示 例如,假设我有一些源代码: Using System; namespace Test {
这到底是什么意思?正如前面的一行所说: 源文件是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,您可以在项目中“链接”源文件。 如果将源文件放置在项目中,并将相同的源文件链接到不同的项目中(即,在两个不同的项目中共享相同的源代码),则最终将有两个源文件链接到单个文件 我通常在有多个项目的解决方案中使用此功能:共享源代码如下:
[assembly: AssemblyVersion("1.2.3.0")]
[assembly: AssemblyFileVersion("1.2.3.0")]
因此,在编写时,我的解决方案中的每个程序集都有相同的版本号。有趣的是,我发现其他编程语言也有类似的定义,其中术语
源文件
被编译单元
替换。这一术语在C语言定义中也有提及,但在这里没有使用,尽管我认为它更有意义。我猜作者想指出的是,“你看到的不一定是文件中的内容”,反之亦然。由于您可能看不到某些内容(新行可以是\n
或\n\r
或\r\n
,但您看不到这些内容),因此在字符串中使用特殊字符(不可见字符)
文本中存在问题。