In Visual Studio 2017 (15.9.16) I can keep on editing source files after I started a build with the Debug > Start Debugging command (F5). While I am specifically asking this for the C# compiler, it would also be interesting to know if C++ behaves differently.
When I edit once the debugger has been attached, and edit-and-continue is enabled, then edits are underlined with squiggly purple and everything is clear.
When I edit before the debugger has attached, and my edit is saved before the build succeeds, the whole thing appears to be in limbo. Either my edit was too late, and the debugger executes the code that has been built (not obvious except for hollow breakpoint bullets, if any). Or it was timely, and is included.
Where is the point in a build's timeline when it is decided if a recent edit will still be included? By the timestamp the build started? Indeterminate? Immediately before the source file is processed by the compiler? Does the linker check if the obj was generated from a source that changed after it started?