【问题标题】:Extension methods on a static object静态对象的扩展方法
【发布时间】:2011-05-31 04:53:37
【问题描述】:

我知道(或者我听说)为单个独立的 .net 类(不是 IEnumerable 的实现)编写扩展方法是潜在的代码异味。但是,为了让生活更轻松,我需要将一个方法附加到 asp.net 中的 ConfigurationManager 类。这是一个静态对象,所以这不起作用:

public static List<string> GetSupportedDomains(this ConfigurationManager manager) 
{

     //the manager needs to be static.

}

所以问题是 - 是否可以在 .net 中为静态类编写扩展方法?

【问题讨论】:

标签: c# .net asp.net extension-methods


【解决方案1】:

不,这是不可能的。

它们被定义为看似是实例方法的静态对象。

来自MSDN

扩展方法定义为静态方法,但使用实例方法语法调用。

【讨论】:

    【解决方案2】:

    不,你不能。扩展方法需要给定类型的实例,而您无法从静态类中获取。

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 1970-01-01
      • 2011-05-12
      • 2011-07-15
      • 1970-01-01
      • 2010-10-26
      • 2015-03-28
      相关资源
      最近更新 更多