You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中将字符串转换为粗体的方法及现有实现代码报错问题

你的代码错误原因
  • 第一是存在无限递归:Bold方法内部直接调用自身,没有终止条件,运行会直接触发栈溢出报错。
  • 第二是逻辑理解错误:C#中的Font类是字体属性的抽象类,本身和纯字符串没有直接关联,无法通过Convert.ToString把字体对象转成带粗体格式的字符串。
正确实现方案

C#中的普通string类型是纯文本,本身不携带任何格式信息,粗体属于展示层的属性,需要根据你的使用场景选择实现方式:

场景1:生成带格式标记的文本(Markdown/HTML/RTF等)

如果是要输出可以被对应渲染器识别的粗体格式,直接拼接对应格式标记即可:

Markdown格式粗体

private string Bold(string str)
{
    return $"*{str}*";
}

HTML格式粗体

private string Bold(string str)
{
    return $"<b>{str}</b>";
}

场景2:桌面应用UI控件显示(WinForm/WPF)

这类场景不要修改字符串本身,直接修改控件的字体属性即可:

整体文本粗体(以WinForm Label为例)

// label1为你的文本展示控件
label1.Font = new Font(label1.Font.FontFamily, label1.Font.Size, FontStyle.Bold);
label1.Text = "需要展示的文本内容";

部分文本粗体(以WinForm RichTextBox为例)

// 先设置选中范围的字体为粗体,再插入文本
richTextBox1.SelectionFont = new Font(richTextBox1.Font, FontStyle.Bold);
richTextBox1.AppendText("这是粗体内容");
// 还原字体为常规,后续插入的文本就不是粗体
richTextBox1.SelectionFont = new Font(richTextBox1.Font, FontStyle.Regular);
richTextBox1.AppendText("这是普通内容");

场景3:控制台输出

Windows 10及以上版本的控制台支持ANSI转义序列,可通过该特性实现控制台粗体输出:

private string Bold(string str)
{
    // \u001b[1m是粗体开启标记,\u001b[0m是格式重置标记
    return $"\u001b[1m{str}\u001b[0m";
}

内容的提问来源于stack exchange,提问作者Kübra Sönmez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:09:03