У меня есть набор методов расширения, которые я регулярно использую для различных задач пользовательского интерфейса. Я обычно определяю их для работы с типом 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
(или соответствующие типы) на основе того, что делает метод расширения?