我对术语“命名空间”的理解基本上是一个类;方法和变量的容器。虽然这似乎是我认为是一个阶级定义的两倍。
有人可以证实或澄清这种信念吗?
答案 0 :(得分:3)
我想说命名空间是一种逻辑分组符号的方式(类,函数,......取决于你正在使用的确切语言)在一个容器中,确保那些符号不要在其他名称空间中与其他符号(可能名称相同)发生冲突。
答案 1 :(得分:3)
命名空间主要用于避免名称冲突。假设您是一个名为A的类,但此类可能由其他人定义。因此,在这种情况下,您需要将您的班级与其他班级分开。在那个实例中,Namespace会起作用。例如:你在这个名称空间中给出了'使用你的名字'命名空间你定义了一个A类。所以这个类可以用yourname.A来区分。类似的方法,变量你可以在自己的命名空间中定义所有东西。
答案 2 :(得分:1)
命名空间为您引用的标识符提供上下文。所以从这个意义上说,一个类也是一个命名空间。
答案 3 :(得分:1)
命名空间用于在同一程序模块中具有不同的编程规则。假设您要将函数'string_addition'定义为'string1'+'string2'='string1string2',但稍后在同一程序中您要将'string_addition'定义为'string1'+'string2'='string3 ”。您可以使用命名空间,以便在同一文件中调用不同的命名空间并获得两种规则。
namespace h:stringadd(string1, string2) = string1string2
namespace f:stringadd(string1, string2) = string3
答案 4 :(得分:0)
在一般意义上,命名空间定义了一组唯一的名称。换句话说,名称在名称空间中只是唯一的。
由于此概念适用于不同语言,因此存在许多变体,包括封装,名称空间,范围等问题。
答案 5 :(得分:0)
命名空间是给定名称保持唯一的域。例如,您可以定义许多名为Widget的类,但它们必须全部出现在单独的域中,以便彼此唯一标识。
出现名称的域取决于定义它的上下文。例如,在.NET世界中,类名在名称空间中必须是唯一的,名称空间本身在程序集中必须是唯一的,因此可以说类名称唯一的域是名称空间和名称空间的域是一个集会
答案 6 :(得分:0)
命名空间是一组类。它在编译后变成.dll。所以我们可以将.dll文件添加到我们的项目中,并且可以轻松地使用这些类。
答案 7 :(得分:0)
命名空间不是OOP的功能。指定编程语言。
而且,是的,一般来说它们类似于类,但只有那些不包含非静态成员的类(因为命名空间无法实例化以形成对象)。