📜  C#中的Console.OpenStandardError方法

📅  最后修改于: 2021-05-29 21:14:57             🧑  作者: Mango

此方法用于获取标准错误流。通过SetError方法更改标准错误流后,可以使用此方法重新获取标准错误流。

句法:

public static System.IO.Stream OpenStandardError ();

返回值:此方法返回标准错误流。

示例:下面的代码首先检查字符串是否为GeeksForGeeks,如果不是,则程序调用SetError方法将错误信息重定向到文件,在重新获取标准错误流的过程中调用OpenStandardError方法,并指出该错误信息已写入文件。重新获取错误流之前,将StreamWriter.AutoFlush属性设置为true。这样可以确保将输出立即发送到控制台,而不是进行缓冲。

// C# program to illustrate the 
// OpenStandardError() Method
using System;
using System.IO;
  
namespace GeeksforGeeks {
  
class GFG {
  
  
    // Main Method
    static void Main(string[] args)
    {
        Console.WriteLine("Please Write GeeksForGeeks");
        string a;
        a = Console.ReadLine();
  
        // checks for a string to be GeeksforGeeks
        if (!a.Equals("GeeksForGeeks")) { 
  
            // Write error information to a file.
            Console.SetError(new StreamWriter(@".\Errorfile.txt"));
  
            Console.Error.WriteLine("The String is not GeeksForGeeks");
            Console.Error.Close();
  
            // Reacquire the standard error stream.
            var standardError = new StreamWriter(Console.OpenStandardError());
            standardError.AutoFlush = true;
  
            Console.SetError(standardError);
  
            Console.Error.WriteLine("\nError information written"+
                                             " to Errorfile.txt");
        }
    }
}
}

在Cmd上执行:

输出文件:

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.console.openstandarderror?view=netframework-4.8#System_Console_OpenStandardError