未释放的资源:未托管对象
本文关键字:对象 资源 释放 | 更新日期: 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;
}
}