C++被设计为一种低级的、 与 平台无关的、面向对象的语言;
C#则被设计成一种完全建立在.NET框架平台上的高级语言,它的所有类型都是从.NEt框架提供的同一类库中派生的,并且所有的功能都依赖于这个类库
在C++中可以进行一些比较低级的操作;而C#就不能进行这些低级的操作,这些低级的操作是由.NET框架来完成的, C#本身则集中于完成比较高级的操作。
在,net托管环境下,当用户选择对象的类型时,该对象在何处创建就已经隐式的确定。简单类型总是在栈中创建(除非这些类型位于其他的对象中),而类则总是在堆中创建,并且用户无法获得他们的地址,也不能改变他们的位置。用户不能控制对象的生存期,另外C#中没有析构函数,无用信息收集器将会在合适的时候回收对象的内存,但是回收的时间不确定。
C#中没有多重继承并且没有模板类。