我使用扩展方法字符串类。在该扩展方法中,我创建了一个StringBuilder的实例。包含对象实例的静态方法,是否错误?
下面是代码:
public static string GetPlainTextFromHtml(this string htmlString)
{
StringBuilder sb = new StringBuilder();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//text()"))
{
string text = node.InnerText;
if (!string.IsNullOrEmpty(text))
sb.Append(text.Trim());
}
return sb.ToString();
}
它的工作原理,但我有一个关于内存管理的担忧。 静态方法没有被实例化,所以如果我在静态方法中实例化一个对象会发生什么。比方说,我将这个静态方法调用了100次,在内存中是否会有100个StringBuilder实例的副本?
会造成内存泄漏吗?垃圾收集器在静态方法执行终止时配置对象实例吗?
'静态方法不被实例化'非静态方法也没有被实例化。类实例只包含数据。方法被称为(未实例化)。区别在于非静态方法是通过类实例调用的,而静态方法是不带类实例的。 – 2014-10-30 14:55:31