使用委托实现控制台和文件输出
时间: 2024-10-11 10:05:02 浏览: 10
委托是一种在.NET编程中实现松散耦合和代码复用的技术,它允许我们将方法的引用作为变量传递给其他对象。对于控制台和文件输出,我们可以创建一个委托类型,比如`Action<String>`,代表接收一个字符串并进行相应操作的行为。
首先,我们定义一个委托:
```csharp
public delegate void OutputHandler(String message);
```
接着,我们可以创建两个实例方法分别对应控制台输出和文件写入:
```csharp
private static void ConsoleOutput(string message) => Console.WriteLine(message);
private static void FileOutput(string message) {
using (StreamWriter writer = new StreamWriter("output.txt", true)) {
writer.WriteLine(message);
}
}
```
然后,在需要输出的地方,我们可以创建委托的实例,并将这两个方法赋值给它们:
```csharp
OutputHandler consoleOutputDelegate = ConsoleOutput;
OutputHandler fileOutputDelegate = FileOutput;
// 调用委托进行输出
consoleOutputDelegate("This is a console output.");
fileOutputDelegate("This is a file output.");
```
这样,无论是在控制台还是文件中,只要通过相同的委托名称调用,就可以切换输出目的地,实现了灵活的控制和代码复用。
阅读全文