2009-06-26 84 views

回答

7

对于命名空间 - 我将专注于标准的框架。命名空间名称准则。将扩展方法放入一个名称空间,在这个名称空间中通常会使用/关联有意义的名称空间,并避免为此仅使用一个额外的名称空间。

对于赞助商类 - 在这种情况下,这是相当不重要的。我会尝试选择一个有意义的类名,但似乎没有一个固定的准则。

虽然这里重要的是,赞助商类永远不会被你的扩展方法的用户真正直接使用/看到。只要包含名称空间,就可以正确找到扩展方法。我个人对我的扩展方法使用了与jrummell非常相似的东西,但是微软并没有在框架中遵循这一点(一个很好的例子就是Enumerable类)。

13

我还没有看到任何正式建议,但我一直在举办类似[命名空间]我的扩展类[类名]扩展:

ProjectName.Web.Util.ControlExtensions 
ProjectName.Data.Util.CollectionExtensions 
+3

我也这样做,我还要补充一点,我倾向于将任何高度专用的静态扩展方法类放入相关的命名空间中,以便它们将被使用,以便它们不会为其他开发人员提供智能感知。换句话说,我的扩展方法类不一定与它们扩展的类位于相同的名称空间中。 – jpierson 2010-02-16 15:35:49

+1

我做了类似的事情,但是当我将扩展方法添加到一个*接口*而不是一个类时,我最终得到了像'IMyInterfaceExtensions`这样难看的类名,而且它看起来像扩展类本身就是一个接口:( – 2013-08-21 17:04:48