extension method to extend static class
本问题已经有最佳答案,请猛点这里访问。
我想知道是否可以使用扩展方法或其他技术来扩展静态类
不可以,扩展方法只能用于添加实例方法,而不能用于静态方法(甚至是属性)。扩展方法实际上只是围绕静态方法的语法甜头。例如,当您使用扩展方法(如count())时:
1 2 | var list = GetList(); var size = list.Count(); |
这实际上是编译为:
1 2 | var list = GetList(); var size = Enumerable.Count(list); |
不能使用扩展方法向现有类添加其他静态方法。
不,这在C中还不可能实现,不过希望在某个时候会变成这样。您不能这样子类静态类并添加新方法,因为静态类必须从
1 2 3 4 5 6 7 | 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); } } |
由于原始类是静态的,根据定义,"扩展"方法不需要接收作为