У меня есть набор методов расширения, которые я регулярно использую для различных задач пользовательского интерфейса. Я обычно определяю их для запуска объекта типа, хотя внутри них я обычно преобразовываю их в типы строк.
public static string FormatSomething(this object o)
{
if( o != null )
{
string s = o.ToString();
/// do the work and return something.
}
// return something else or empty string.
}
Основная причина, по которой я использую тип объекта, а не строку, - это сохранить себя в пользовательском интерфейсе из-за необходимости делать <%#Eval("Phone").ToString().FormatSomething()%>
, когда я могу сделать <%#Eval("Phone").FormatSomething()%>
вместо этого.
Итак, хорошо ли с точки зрения производительности создавать все методы расширения для объекта или я должен преобразовывать их в строковые (или соответствующие) типы на основе того, что делает метод расширения?