我想知道是否可以使用扩展方法或其他技术来扩展静态类,例如
System.Net.Mime.MediaTypeNames.Image
,它的类型比我需要的少。请注意不要删除HTML标签。System.Net.Mime.MediaTypeNames.Image
,它的类型比我需要的少。请注意不要删除HTML标签。var list = GetList();
var size = list.Count();
这实际上被编译为:
var list = GetList();
var size = Enumerable.Count(list);
使用扩展方法无法向现有类添加额外的静态方法。
object
。不过,你可以做的一件事是,在代码中声明另一个静态类,当你想要使用扩展方法时,就使用这个类。例如:public static class MessageBox2
{
public static DialogResult ShowError(string Caption, string Message, params object[] OptionalFormatArgs)
{
return MessageBox.Show(string.Format(Message, OptionalFormatArgs), Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
由于原始类是静态的,按照定义,“扩展”方法不需要接收实例作为this
参数,可以直接使用原始类的静态方法。