请问各位朋友,由于我现在用的是VB,但感觉还是C#要应用广泛些,所以打算改学C#,但不知在学C#之前还学不学C++?他们的关系是什么,互相独立的吗?另外,如果要结合ASP.NET写WEB程序,是不是先还要买本C#的程序设计书来看了后,再来学ASP.NET???换句话说就是写ASP.NET程序所需要的C#知识到底要多少呢?要不要买本C#书专门来学?还是找一本ASP.NET和C#相结合的书来学就可以了啊?
这里请各位朋友们推荐一下相关的书目。我目前所知的一本是章立民的《用实例学ASP.NET》,我看了一下CSDN上的朋友好评不少的,但我现在C#无任何基础的啊,那又看什么书好呢?另,我希望大家给我推荐的书是用了开发工具的啊,比如DREAM或者是VS.NET2003之类的。谢谢!!!

解决方案 »

  1.   

    C#是从C++的基础上发展而来的,它结合了VB的简明和C++的强大。同时引进了JAVA的一些元素。是一种更加面向对象化的语言。你可以笔直学C#,但是显然如果有C++或JAVA的基础将更容易看懂以及更深层次的理解C#,学ASP.NET你至少得会C#的一些基本的知识。如果你以前的语言基础很好。那就只是熟悉新的关键字罢了。下面附:
    C#和C++的差异:
    1:在C#中,所有方法都是在类定义中定义的,所有对象都隐式的派生自基类:System.Object
    2:在类的末尾不必放分号,但是页可以加分号。
    3:除非希望成员采用默认的访问修饰符private,否则必须为它指定一个访问修饰符。
    4:在哪个类中定义Main方法对于C#编译器并无影响,而且你选择的类也不影响编译的次序。这与C++不同,在C++中在建立应用程序时必须密切关注依赖性。
    5:C#中的命令行参数数组并不将应用程序名作为它的第一个条目。
    6:C#和C++中的对象实例化过程不一样。
    7:所有方法被封装在某个类或结构中,C#不支持全局方法。
    8:即使函数的其他重载版本存在于基类中而不时载当前类中,重载方法仍然被认为时重载。
    9:C#中数组是以Sytstem.Array类作为基类定义的对象。
    10:在C#中,声明数组的语法实在类型和变量名之间放一对空的方括号。
    11:C#增加了属性
    12:C#没有从数值数据到字符数据的隐式转化;但是可以进行显示转换。
    13:当使用关系操作符比较两个对象时,C#编译器并不比较对象的内容。相反,它比较两个对象的地址。
    14:C#在进行对象赋值时是对引用进行赋值。
    15:IF语句中被运算的表达式必须产生一个布尔值
    16:C#不支持在Switch语句中省略break语句时的穿透效果。
    17:能够在C#中重载的操作符不如C++多。
    18:C#增加了XML注释。
    19:C#中没有delete操作符,也没有析构器,析构器由Finalize方法替代。
    20:只能在标明Unsafe的代码中使用指针。
    21:C#不支持.*和->*操作符