【发布时间】:2012-12-07 01:47:05
【问题描述】:
我想知道,当我开始从使用常规助手到越来越多的extension methods 进行一些戏剧性的转变时,他们开始堆积起来,
说我的顶级主命名空间如下:
主命名空间名称为 myname + 年份和当前月份的最后一位
这就是我如何将其组织为辅助命名空间
namespace "myname212"
{
namespace DbRelated
{
some clasess & methods
}
namespace styling
{
same as usual ..
}
// .... some more categories and...then
//the extentions namespace
namespace CustomExtentions
{
// simplest ext class and its first method
public static class ToNumber
{
public static int Toint(this Textbox TbxToConvrt)
{
return Convert.ToInt32(TbxToConvrt.Text);
}
//some more of same subject
}
}
}
但是,如果我有一个更通用的类别,它在逻辑上拥有自己的子类别,该怎么办
namespace Extentions
{
public static class MainCategory
{
public static class SubCat1
{
public static some_method();
}
public static class SubCat2
{
public static some_method();
}
}
}
上面的层次结构不起作用。
如果我想建立更多类别,我只能通过
nested namespaces 而不是 nested classes ?
这是你做的吗?
【问题讨论】:
-
为什么不行?是不可编译还是您只是不喜欢/不接受它?
-
它会编译,但不会作为扩展访问(您是否缺少程序集或......)
-
@abatishchev 它对你有用吗,你试过吗?我错过了什么吗?下面的结构对你有用吗?:
namespace-> static class-> static class--> static method();从外到内,就像这样对你有用? -
@LoneXcoder 为什么需要嵌套包含扩展方法的静态类?嵌套命名空间看起来很清楚......甚至保留你的年份命名:
namespace Extensions.SomeName2012.January,然后是namespace Extensions.SomeName2012.February等等......所以你只需要添加合适的using -
好的,我知道了。您嵌套的不是命名空间而是类。这确实行不通。
标签: c# .net namespaces .net-4.0 extension-methods