未释放的资源:未托管对象

本文关键字:对象 资源 释放 | 更新日期: 2023-09-27 18:35:23

我在代码new font()行有一个强化问题

未发布的资源:非托管对象 - 强化 c#

法典:

try
{
 var c = new ChartArea();
 c.AxisY.TitleFont =  new Font("Arial", 10, FontStyle.Bold);// --> Fortify issue
}
finally
{
  if (ca.AxisY.TitleFont!= null)
      {
        ca.AxisY.TitleFont.Dispose(); //--> does not resolve the foritfy issue
      }
}

我试图处理标题字体,但它没有帮助。你能告诉我如何解决这个问题吗?

强化详细信息信息:

DrawController.cs 中的函数 DrawChart() 无法正确 在第 134 行释放由 Font() 分配的非托管系统资源。

未释放的资源:未托管对象

问题是将新字体分配给 .TitleFont 引发异常。在这种情况下,.TitleFont 可能仍为 null,但 Font 对象已分配,并且您没有保留它的句柄。

多打一点可能会解决问题:

var c = null;
Font arial10bold = null;
try
{
 c = new ChartArea();
 arial10bold = new Font("Arial", 10, FontStyle.Bold);
 c.AxisY.TitleFont =  arial10bold;
}
finally
{
  if ( arial10bold != null ) {
      arial10bold.Dispose;
  }
}