I have read in the c# language specification :
Source files typically have a one-to-one correspondence with files in a file system, but this correspondence is not required
What does this exactly mean ?
As the line before it says:
A source file is an ordered sequence of Unicode characters
That means a "source file" doesn't necessarily have to be a file on the file system. It could be any old stream of bytes that represent characters in UTF-16. It could come from a memory stream, or from a network, or from any old place. But usually it's a file on the file system.