我使用擴展方法字符串類。在該擴展方法中,我創建了一個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