C++程序员快速学习C#
随着.NET的深入人心作为一个程序员当然不能在新技术面前停步面对C++.NET中的失败虽然有一丝遗憾但我们应该认识到,对于c++其实就不应该对其在中的表现有太大的奢望,因为毕竟它并不是一个下的正统语言,应该是c#的舞台,作为一个c++程序员,我们应该庆幸,因为我们学习c#其实是简单的直接的,需要我们接受的新知识其实不多,相对其他语言来说,我们应该可以更加平滑的过渡到c#的开发中.废话不多说,现在就让我们用C++的基础来学习这个渐渐壮大的新语言----C#
对于C#的讲解我只讲解和C++有区别的地方,相同的部分我就一带而过,.这样的对比学习可以让我们在已有知识的前提下快速掌握C#
    :统窥:
一开始学习语言大部分的教程都会用一个Hello World程序来示范,我们也落入俗套,Hello World来和C++中做一个比较:
C++:
#include <iostream>
using namespace std;
void main()
{
    //C++程序
    /* C++程序*/
    cout<<"Hello World!"<<endl;
}
C#:
using System;
namespace HelloWorld
{
    class Class1
    {
        //C#程序
        /*C#程序*/
        ///C#程序
        static void Main()
        {
            Console.WriteLine ("Hello World!");
        }
    }
} 字符串常量有方法吗
扎一眼看上去两者差不多,心中一阵窃喜,可以说C#对语法的定义更加严格一些.
首先对于程序的进入点,最大的区别就是Main函数的开头必须要大写.因为C#是一个完全面向对象的程序语言,所以它的所有代码都必须定义在一个类中,Main函数也不例外,同时因为程序在编译运行时都是先转为中间语言,然后中间语言再编译为机器语言,这样的好处有2,.如同Jave一样,写好的程序可以在不同的系统中运行,而不需要改变程序..使用不同的语言写的程序,因为要转化为相同的中间语言,所以在程序开发中可以使用不同的程序语言编写,而相互调用.,当使用不同语言开发或者进行分类开发时,各自开发的程序中会出现相同的变量名,函数名等,所以在写C#程序时,必须把程序包涵在一个名字空间内.
定义名字空间使用关键字:namespace <空间名>.当一个命名空间中的代码需要使用在另一个名字空间中定义的名称,就必须包括对该命名空间的引用,使用点字符(.)
:
namespace LevelOne
{
        //name Adefined
    Namespace LevelTwo
{
//name Adefined
}
}
这里就定义了两个名字相同的变量,我们可以使用LevelOne.A LevelOne.LevelTwo.A 来独立使用它们,互不干扰.
建立了名字空间后,我们可以使用using关键字来简化对它们包含的名称的访问.C++中使用using namespace std的含义相似;
对于主函数必须要有限定词static 这表明Main函数是静态的,在内存中只能有一个副本.
第一行中的using System.其命名空间是.NET应用程序的根名字空间,包涵了控制台应用程序所需要的所以基本功能.就如同C++中的头文件包涵在std这个名字空间中一样.
Console.WriteLine ("Hello World!");Consolesystem名字空间中的一个类,其有一个WriteLine方法,它的作用和cout一样,输出一行字符串.
 
.数据类型
C#中的数据类型和C++是类似的.
1.浮点类型
浮点类型中添加了一个精度更高的decimal类型.对于金融方面的程序开发,此种数据类型用来定义钱币.
2.Bool类型
Bool类型的变量只能赋值为:falsetrue,虽然它们的含义仍然是0和非0,但是在使用中不能再给它们赋值成整数值,在判断语句中.if (bool a==1)  的使用都是错误的.
3.字符类型
Char类型在C#中是16位的,它也不能接收一个整数值
4.整数类型
整数类新中添加了byte(8位无符号整数),sbyte(8位有符号整数),short(16位有符号整数)
long变成了真正的64位有符号整数,它可以用在64位机器的编程中.
uint,ushort,ulong顾名思义是没有符号的整数,它和C++中的unsigned int是一样的,名字换了一下而已.
5.字符串类型
String类型是字符串类型,它是引用的类型,它的使用方法和C++string的使用相似,可以进行+运算
String类型有一些方法可以给我们使用.例如:ToCharArray() 把字符串放入一个字符数组中  Length 返回字符串的长度等等,可以在MSDN中查.
6.类型的转换
C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,例如int可以转换成long,float,double,decimal.反之必须显式的转换.
:int a=7; 
  float b=a;  //隐式转换
    long c=12L;  //C++一样必须加上后缀L才能定义为long型不然就为int型了
    a=(int)c; //显示转换
使用上面的显示转换不能用在BOOLstring类型上,如果希望string或者bool类型和整数类型之间的转化可以使用一个方法.
Convert.To*****(val)
*****:一种数据类型(具体请参看MSDN)  val:可以是这种类型的变量
:int a=123;
    string str=Convert.ToString(a);
    bool m_bool=Convert.ToBoolean(a);
7.枚举类型
C++C#的枚举类型,定义相同,使用也相同,只要注意C#中语句最后不需要;结束符,同时定义枚举类型时也不许放在主函数代码段中它只能放在执行代码外面.如下
using System;
namespace HelloWorld
{
enum week

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。