diff --git a/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs b/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs
index ea07d694f7c2b7..1294bc9accf1c0 100644
--- a/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs
+++ b/src/libraries/System.Diagnostics.Process/ref/System.Diagnostics.Process.cs
@@ -285,6 +285,7 @@ public readonly partial struct ProcessOutputLine
public ProcessOutputLine(string content, bool standardError) { throw null; }
public string Content { get { throw null; } }
public bool StandardError { get { throw null; } }
+ public override string ToString() { throw null; }
}
public enum ProcessPriorityClass
{
diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs
index c8d9d9ad39bc2f..0bf8aab3b092a1 100644
--- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs
+++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessOutputLine.cs
@@ -35,5 +35,11 @@ public ProcessOutputLine(string content, bool standardError)
/// otherwise, .
///
public bool StandardError { get; }
+
+ ///
+ /// Returns the text content of the output line, or if the struct was default-initialized.
+ ///
+ /// The value of , or if is .
+ public override string ToString() => Content ?? string.Empty;
}
}
diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs
index 15a6d65249e197..e3dbe46775bbbd 100644
--- a/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs
+++ b/src/libraries/System.Diagnostics.Process/tests/ProcessStreamingTests.cs
@@ -694,5 +694,25 @@ private Process StartLinePrintingProcess(string stdOutText, string stdErrText)
return (capturedOutput, capturedError);
}
+
+ [Theory]
+ [InlineData("hello")]
+ [InlineData("")]
+ [InlineData("line with spaces")]
+ public void ProcessOutputLine_ToString_ReturnsContent(string content)
+ {
+ ProcessOutputLine line = new(content, standardError: false);
+ Assert.Equal(content, line.ToString());
+
+ ProcessOutputLine errorLine = new(content, standardError: true);
+ Assert.Equal(content, errorLine.ToString());
+ }
+
+ [Fact]
+ public void ProcessOutputLine_Default_ToString_ReturnsEmpty()
+ {
+ ProcessOutputLine line = default;
+ Assert.Equal(string.Empty, line.ToString());
+ }
}
}