C#与C++的命名空间

来源:互联网 发布:转换成淘宝客链接 编辑:程序博客网 时间:2024/06/14 03:30

继续总结在腾讯面试的出丑经历--命名空间(namespace)。

1、命名空间(namespace)

在编程时为了为了区别不同的属性或者不同的行为,通常需要为该属性或该类行为以一个便于记住的标识符命名,因此,对于具有相同属性的同类事物,不可避免的会以相同名字来对该事物的属性或者行为命名。并且,不同的人写的程序中不可能所有的变量都没有重名。为了解决这个问题,引入了命名空间这个概念,用来组织和重写代码。通过使用namespace ***;你所使用的库函数或者变量就是在该命名空间中定义的,这样一来就不会引起不必要的冲突了。

命名空间的名字是唯一识别的一套名字。这样,当对象来自不同的地方但名字相同就不会引起含糊不清了。


2、C#中命名空间的使用

命名空间的导入与引用是息息相关的。如上图中所示,正确使用命名空间的步骤需要先在工程的引用中导入相应的命名空间,这些命名空间通常包含在动态库中,在导入相应的命名空间后,方可在该工程的cs文件中引用这些命名空间,如上图中的System、System.Data等。若没有先导入相应的命名空间就直接在代码中引用该命名空间或者使用属于该命名空间中的变量或类型,将导致编译错误。在上图中,如果没有在引用中导入System.data,而在代码中使用了using System.Data,将提示System中不包含Data这个命名空间,或者缺少引用。导入System.Data命名空间后,如果没有在代码中添加using System.Data就使用该命名空间的变量或者函数,如使用DataTable,将提示未能找到类型或命名空间DataTable,此时可以使用System.Data.DataTable来访问该命名空间中的DataTable类型。


3、C++\C# 中访问其他命名空间的变量

(1)、C++中的域操作符与C#中的.操作符

以C++中的标准输出为例。C++中标准输出cout定义在命名空间std中,因此,在使用cout时可以用std::cout这样的方式使用,需要注意的是,cout是ostream类型的对象,而ostream类型定义在iostream头文件中,因此,在使用cout时,还需要使用#include<iostream>.

在C#中,正如上边的例子中所说,使用命名空间.类型(或变量等)来访问其他命名空间中的类型。如使用System.Data.DataTable来访问System.Data命名空间中的DataTable类型。

(2)使用using 语句。

使用using语句的用法在C++和C#中的语法大致一样。

C++ 中为  using namespace std;

C#中为using System.Data;

0 0