69 lines
2.1 KiB
C#
69 lines
2.1 KiB
C#
|
/*
|
|||
|
* <copyright>
|
|||
|
Company="公司"
|
|||
|
2020-2025
|
|||
|
Author=JCH
|
|||
|
Path=XiaoZhiSharp.Utils.FixConsoleWriteLine.cs
|
|||
|
* <copyright>
|
|||
|
* --------------------------------------------------------------
|
|||
|
* 机器名称:JCH
|
|||
|
* 文件名:FixConsoleWriteLine.cs
|
|||
|
* 版本号:V1.0.0.0
|
|||
|
* 创建人:JCH
|
|||
|
* 创建时间:2025/9/24 11:35:26
|
|||
|
* 描述:
|
|||
|
* --------------------------------------------------------------
|
|||
|
* 修改时间:2025/9/24 11:35:26
|
|||
|
* 修改人:JCH
|
|||
|
* 版本号:V1.0.0.0
|
|||
|
* 描述:
|
|||
|
* --------------------------------------------------------------
|
|||
|
*/
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace XiaoZhiSharp.Utils
|
|||
|
{
|
|||
|
public static class FixConsoleWriteLine
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 上一次打印内容
|
|||
|
/// </summary>
|
|||
|
private static string? _lastMessage = null;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 固定在新的一行的位置,重复打印新的内容
|
|||
|
/// </summary>
|
|||
|
/// <param name="message">打印内容</param>
|
|||
|
/// <param name="isLast">是否为此位置的最后一次打印</param>
|
|||
|
public static void WriteLine(string message, bool isLast = false)
|
|||
|
{
|
|||
|
if (_lastMessage != null)
|
|||
|
{
|
|||
|
//如果不是第一次打印,则清除上一次打印的内容,并在原位置打印
|
|||
|
Console.SetCursorPosition(0, Console.CursorTop - 1);//将光标移动到上一行行首
|
|||
|
Console.Write(new string(' ', _lastMessage.Length));//用空格覆盖原内容
|
|||
|
Console.SetCursorPosition(0, Console.CursorTop);//将光标移动到当前行行首
|
|||
|
Console.WriteLine(message);//打印新内容
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//如果是第一次打印,则在新的一行打印内容
|
|||
|
Console.WriteLine(message);
|
|||
|
}
|
|||
|
if (isLast)
|
|||
|
{
|
|||
|
_lastMessage = null;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_lastMessage = message;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|