大家好,比方说有一个DLL,包含如下的名字空间:
namespace CompanyName.ProductName.A;
namespace CompanyName.ProductName.B;
namespace CompanyName.ProductName.C;
namespace CompanyName.ProductName.D;
namespace CompanyName.ProductName.E;
namespace CompanyName.ProductName.F;
namespace CompanyName.ProductName.G;当用户想要使用该DLL的时候,不幸往往总要加入一半以上的名字空间,特麻烦,有没有方便的办法呢?比方说把
using CompanyName.ProductName.A;
using CompanyName.ProductName.B;
using CompanyName.ProductName.C;
using CompanyName.ProductName.D;
using CompanyName.ProductName.E;
using CompanyName.ProductName.F;
using CompanyName.ProductName.G;
都加到一个文件"UsingNameSpace.h"里, 然后用户只要#include "UsingNameSpace.h"就行了。(我也不确定行不行,打怪时这个意思)
不过这种方法对C# 程序员行不通,而且用户还要提前知道有这么个特殊的文件存在,另外在Intellisene也不能够自动识别。我曾考虑过把所有的类都指定到一个名字空间里。但是几乎上面的每个名字空间里至少有30个以上的类。我的目的是能够对所有类进行合理的分类用名字空间来区分,但又不想让该DLL的使用者太麻烦。
namespace CompanyName.ProductName.A;
namespace CompanyName.ProductName.B;
namespace CompanyName.ProductName.C;
namespace CompanyName.ProductName.D;
namespace CompanyName.ProductName.E;
namespace CompanyName.ProductName.F;
namespace CompanyName.ProductName.G;当用户想要使用该DLL的时候,不幸往往总要加入一半以上的名字空间,特麻烦,有没有方便的办法呢?比方说把
using CompanyName.ProductName.A;
using CompanyName.ProductName.B;
using CompanyName.ProductName.C;
using CompanyName.ProductName.D;
using CompanyName.ProductName.E;
using CompanyName.ProductName.F;
using CompanyName.ProductName.G;
都加到一个文件"UsingNameSpace.h"里, 然后用户只要#include "UsingNameSpace.h"就行了。(我也不确定行不行,打怪时这个意思)
不过这种方法对C# 程序员行不通,而且用户还要提前知道有这么个特殊的文件存在,另外在Intellisene也不能够自动识别。我曾考虑过把所有的类都指定到一个名字空间里。但是几乎上面的每个名字空间里至少有30个以上的类。我的目的是能够对所有类进行合理的分类用名字空间来区分,但又不想让该DLL的使用者太麻烦。
解决方案 »
- 取图片中的数字 迷茫。。。求思路
- [非技术]关于C#、VB.net、Asp.net的关系问题,请指点指点!
- 异常详细信息: System.ArgumentNullException: 值不能为空。参数名: String
- 还是关于类的写法,100分,请高手帮助搞明白类的写法的规范或给点相关资料
- 一个简单的问题,请大家指教!!!!!!!!!!!!!!
- 请问C#有没有16进制数这种类型?
- C# exe工程文件使用Dependency walker无法看到所使用的DLL信息
- 关于数据绑定的问题。急,在线等
- 关于c#的速度与vb6的速度谁快?
- 请问在C#中转义符怎么使用呀!?:)
- 关于textbox失去焦点事件的问题,在线等,急急,高手帮忙看看
- 纯新手看什么书好
只是考虑用户体验方面的问题,如果能够写一两行代码就能够代替那6~7个using的调用的话,应该不错。我在等等吧,看看其他人有没有好的想法,今天下班前就结贴好了。
我又是了一下,如下代码,用户只需using Com.Pro.Total就可以模拟所有的名字空间了,只是我自己麻烦点而已。(只是个想法,实际上用户还是找不到该Com.Prol.Total名字空间。)
namespace Com.Pro.A
{
public class _A1
{ } public class _A2
{ }
}namespace Com.Pro.B
{
public class _B1
{ } public class _B2
{ }
}namespace Com.Pro.C
{
public class _C1
{ } public class _C2
{ }
}namespace Com.Pro.Total
{
using A1 = Com.Pro.A._A1;
using A2 = Com.Pro.A._A2;
using B1 = Com.Pro.B._B1;
using B2 = Com.Pro.B._B2;
using C1 = Com.Pro.C._C1;
using C2 = Com.Pro.C._C2;
}
我又是了一下,如下代码,用户只需using Com.Pro.Total就可以模拟所有的名字空间了,只是我自己麻烦点而已。(只是个想法,实际上用户还是找不到该Com.Prol.Total名字空间。)
namespace Com.Pro.A
{
public class _A1
{ } public class _A2
{ }
}namespace Com.Pro.B
{
public class _B1
{ } public class _B2
{ }
}namespace Com.Pro.C
{
public class _C1
{ } public class _C2
{ }
}namespace Com.Pro.Total
{
using A1 = Com.Pro.A._A1;
using A2 = Com.Pro.A._A2;
using B1 = Com.Pro.B._B1;
using B2 = Com.Pro.B._B2;
using C1 = Com.Pro.C._C1;
using C2 = Com.Pro.C._C2;
}
用下面的代码创建的DLL,直接using Com.Pro;也不能够直接使用_A,_B等类。
namespace Com.Pro.A
{
public class _A1
{ } public class _A2
{ }
}namespace Com.Pro.B
{
public class _B1
{ } public class _B2
{ }
}namespace Com.Pro.C
{
public class _C1
{ } public class _C2
{ }
}
using system.io;
using system....;
using system....;其实真的很笨的设计,哈哈哈。
直接每个用全命名空间。开发程序哪有怕麻烦的
如果是直接用全名字空间的缺点是每行生命类实例的代码都太长了,影响阅读。另外当用户找一些他不熟悉的类时,还要不停的改名字空间然后一个一个试,这样开发效率太低了。Java里的Import,然后是名字空间外加一个*符号,好像也只能表示该名字空间下的类吧,而不是改名字空间下的子名字空间。虽然开发程序不应该怕麻烦,但是并不能让我们放弃寻找提高开发效率的手段。(只是个人观点)= =!
反正编译不过的地方, 打个ctrl+.就全出来了。