我有一组扩展方法,我经常用于各种UI任务.我通常将它们定义为运行类型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.
}
Run Code Online (Sandbox Code Playgroud)
我使用类型object而不是使用类型的主要原因string是<%#Eval("Phone").ToString().FormatSomething()%>在我可以做的时候将自己保存在UI中<%#Eval("Phone").FormatSomething()%>.
那么,从性能的角度来看,创建所有扩展方法是否正常object,或者我应该根据扩展方法的作用将它们转换为string(或相关)类型?
可能重复:
扩展方法性能
在一个CPU和/或内存访问限制的数据处理应用程序中,一行扩展方法的开销是否显着?它是否比普通函数调用更高,还是仅仅是编译器/ IDE抽象?例如,如果以下函数每秒被调用数千次,那么它是否会被告知:
public static void WriteElementString(this XmlTextWriter writer, string name, int data)
{
writer.WriteElementString(name, data.ToString());
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
扩展方法性能
当我以任何方式使用扩展方法时,我会遇到性能问题吗?
举个例子:
假设我在类型字符串上有100个扩展方法,并且有一个具有50个字符串属性的业务对象.现在我创建了这个业务对象的集合,可能有500个项目?
字符串上的这些扩展方法对RAM,CPU,......有什么影响!
我真的很喜欢扩展方法,但我想知道它的用法是否存在限制.