现在的位置: 首页 > 综合 > 正文

C++ VS C#(2):字符串,命名空间

2013年08月04日 ⁄ 综合 ⁄ 共 1269字 ⁄ 字号 评论关闭

//=====================================================================
//TITLE:
//    C++ VS C#(2):字符串,命名空间
//AUTHOR:
//    norains
//DATE:
//    Tuesday  30-November-2010
//Environment:
//    Visual Studio 2010
//    Visual Studio 2005
//=====================================================================

 

1. 字符串

 

    无论是C++还是C#,都支持字符串,都可以用string来进行保存。不过,string在C#中是内置类型,但在C++里却必须要借助于STL。还有一点很有意思的是,string在C#中存储的是UNICODE,但在C++却是ANSIC。如果要让C++支持UNICODE的字符串,则必须使用wstring。

 

    这两种语言,对于字符串都可以这样操作:

    如果字符串带有换行或别的转意字符,都可以使用“/”来表示,如:

     但C#有个增强的特性,可以在第一个引号前加“@”,表示在“@”之后,“;”之前的引号的内容原封不动作为数值。简单点说,上面的两个语句,用C#还可以以这种形式表示:

 

2. 命名空间

 

    C++和C#都支持命名空间,也就是namespace,并且都支持嵌套,如: 
 

     虽然声明一致,但使用上却大相径庭。对于C++来说,命名空间的必须使用“::”来进行标注,如:

     但C#却是采用“.”:  

     如果以操作的观点来看,本例中的Type在C++中更像是类的类型,而C#则是对象的类型。

 

     还有一个很有意思的区别,C#不能直接在命名空间中直接声明变量或函数,如:

 

    这个代码段在C++能够很完美地进行编译,但在C#中却会提示出错:error CS0116: A namespace cannot directly contain members such as fields or methods

抱歉!评论已关闭.