Нет веской причины. Я бы сказал, скорость, поскольку TagBuilder
по сути является специализированной StringBuilder
, которая, как известно, быстрее, чем string.Format
, но мне нужно увидеть некоторые тесты, поскольку кажется, что вся структура HTML может замедлять работу вниз.
Одним из примеров того, почему вы можете захотеть использовать его, является то, что он упрощает условную логику. Я думаю, например, что-то вроде
var theClass = item.Title.Length > 5 ? " class=\"Long\"" : "";
var str = string.Format(@"<li><a href=""{0}""{1}>{2}</a></li>", item.Uri, theClass, item.Title);
не очень ясно или чисто, тогда как
if (item.Title.Length > 5)
{
a.AddCssClass("Long");
}
// And then all that other stuff.
довольно хорошее решение.