C#完全面向对象,并且不使用指针。C#从语言设计之初,就抛弃了C++繁琐和容易出错的语法,比如:
if (i = 2) ...
在C++里面,可以编译,但是在C#里,无法编译。因为大多数情况下,程序员试图表达的是 if (i == 2)
再比如:
switch (i)
{
case 1:
i++;
case 2:
i += 2;
}
在C++里面,可以编译,当i=1,则会贯通两个分支,在C#里,会报错。
C++里,指针是一个非常灵活的特性,但是也非常容易出错,在C#里,不使用指针。
C++里,一个对象创建之后,程序员负责回收:
Class1 *p = new Class1();
...
delete(p);