gpt4 book ai didi

c# - GraphicsPath 是否应在使用后处理

转载 作者:行者123 更新时间:2023-11-30 19:43:46 29 4
gpt4 key购买 nike

我正在制作一些实用程序类,它们可以将不同类型的符号放置到 CAD 图纸的立面上。我想确保如果我需要处理我这样做的 GraphicsPath 对象。

在下面 getCircle 函数内部的代码中,它表明我正在将 myPath“GraphicsPath”对象传递给 AddStringToPath 函数。

我不能为此使用 using(){} 范围,因为我将 myPath 图形对象作为引用传递。

这种设计是否可以使用,或者我是否需要采用不同的方式来确保垃圾收集?

 GraphicsPath getCircle(Graphics dc, string text = "")
{
GraphicsPath myPath = new GraphicsPath();
myPath.AddEllipse(symbolCircle);

AddStringToPath(dc, ref myPath, text);

return myPath;
}
void AddStringToPath(Graphics dc, ref GraphicsPath path, string text)
{
SizeF textSize = dc.MeasureString(text, elevFont);

var centerX = (path.GetBounds().Width / 2) - (textSize.Width / 2);
var centerY = (path.GetBounds().Height / 2) - (textSize.Height / 2);

// Add the string to the path.
path.AddString(text,
elevFont.FontFamily,
(int)elevFont.Style,
elevFont.Size,
new PointF(centerX + 2, centerY + 2),
StringFormat.GenericDefault);
}

最佳答案

创建路径的函数应该稍后在 using 语句中使用

 using(var path = getCircle(dc, "Text"))
{
// do something with path
}

如果您调用函数 CreateCircle 而不是 getCircle 会更好

关于c# - GraphicsPath 是否应在使用后处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095939/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com