Снижается ли производительность при создании методов расширения, которые работают с типом 'object'?

У меня есть набор методов расширения, которые я регулярно использую для различных задач пользовательского интерфейса. Я обычно определяю их для работы с типом object, хотя внутри них я обычно преобразовываю их к строковым типам.

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.

}

Основная причина, по которой я использую тип object, а не string, заключается в том, чтобы избавить себя в пользовательском интерфейсе от необходимости выполнять <%#Eval("Phone").ToString().FormatSomething()%>, когда вместо этого я могу сделать <%#Eval("Phone").FormatSomething()%>.

Итак, нормально ли с точки зрения производительности создавать все методы расширения на object, или я должен преобразовать их в string (или соответствующие типы) на основе того, что делает метод расширения?

27
задан DaveInCaz 23 August 2018 в 12:39
поделиться