In .NET the idiom Environment.NewLine
is a System.String
that consists of the proper System.Char
(s) to terminate a line of text, so:
System.Diagnostics.Debugger.Log(0, null, t[0] + Environment.NewLine);
[Updated 2015-05-07]
Reflecting upon this a few years on, i feel like i dropped the ball on this at least a little bit (though, i do think that it's important to be able to do the low-level NewLine without having to fight the language sometimes as well; so i also like the original answer...)
First off, David Brown did give a good answer below: using System.Diagnostics.Debug.WriteLine
(and Write
) instead. That is a good solution to this, especially in the case of the OP, as the other parameters of the call aren't even really being used; and the Debug.Write
/WriteLine
calls looks like this (using for examples the OP's original calls, assuming for the sake of example that the OP's original first parameter responseFromServer
was already terminated, and the second needed termination):
System.Diagnostics.Debug.Write(responseFromServer);
System.Diagnostics.Debug.WriteLine(t[0]);
Easy peasy.
Better yet though, why not Trace
?
I will just point you to this stackoverflow question here but here's the gist.
You can set up in your App.config but, of course you can also just create it all programatically as well, since the app.config sections simply create objects!
Something like:
⋮
<trace>
<!-- note: notional notation only -->
<add name="consoleLog" logLevel="debug" enabled="" type="⋯
<add name="netLog" logLevel="verbose" enabled="false" addr="rdp://127.0.0.1:1935/nothing/stream" type="⋯
<add name="fileLog" logLevel="errors" enabled="true" file="c:\boots.ini" type="⋯
</trace>
⋮
and then your code calls Trace()
just like Debug()
.
System.Diagnostics.Trace.Write(responseFromServer);
System.Diagnostics.Trace.WriteLine(t[0]);
Yep, it's multi-target; and you can set it up to be multi-target, and you can either use built-in System.Diagnostics
Trace
types (like a Console
tracer if you want to print to the screen, for example) or you can create your own custom types as necessary. Beautiful!
Last word: both Debug and Trace have lots of helper functions that are there to make whatever writes you're doing more symbolic; WriteLineIf, TraceError, etc. and it pays to play around with them until you figure out why they are there. It's almost guaranteed that the more you use them, the more useful you will find them. ♡
Debug.WriteLine
not line break, is this bug? – Alvy