C#与C++的异同

1.循环

  同:都具有whiledo-whilefor三种循环结构,使用方法一样

  异:C#引入了foreach,用于遍历集合中所有的元素

  用法foreach(变量 in 变量,通常是一个集合)

  {

  循环语句

  }

  eg

  Int[] a={1,2,3};

  foreach(int t in a)

  {System.Console.WriteLine(i);

  }

  结果为:

  1

  2

  3

2.数组

  用法不同,C#支持以为数组,多维数组(矩形数组)和数组的数组(又称交错的数组)

  1)、一维数组

  声明

  <类型>[] 数组名

  EG:

  int[] a

  方括号[]必须跟在类型之后,数组的大小并不是其类型的一部分,而在C语言中却是类型的一部分。声明数组并不实际创建它们,C#中数组是对象,必须进行实例化,只有用new操作符维数组分配空间后,数组才真正占有实在的存储单元。new创建数组的格式如下:

  <数组名>=new <类型>[<长度>]

  也可以在声明的同时进行初始化

  int[] a={1,2,3,4,5};

  C#也能通过下标访问;a[0]——1

  2)、多维数组声明如下

  int[,] items= new int [5,4];

  int[,,] buttons=new int[4,5,3];

  同时初始化

  int[,] number=new int[3,2] {{1,2},{3,4},{5,6}};

  可以省略大小

  int[,] number= new int[,] {{1,2},{3,4},{5,6}};

  3)、数组的数组

  int[][]=scores=new int[4][];

 3.类的异同

  C#类,包括:数据成员,方法成员,嵌套类型

  数据成员,包括:常亮,域(又称字段曾远,filed menber

  方法成员(method menmber)包括:方法(method),属性(property),索引器(indexer),事件(event),操作方法(operator),构造方法(constructor)

  C#类的声明方法如下:

  [修饰符] class 类名 [:基类明]

  包含类主体的类结构如下:

  类声明

  {

  数据成员声明

  方法成员声明

  }

  声明常量成员要用const关键字,并给出常量名及其类型,格式如下

  [修饰符] const 常量类型 常量名 =                              修饰符 public private internal protected

  声明字段成员必须给给出变量名及其所属的类型,同时还可以制定其他特性。

  [修饰符][static] 变量类型 变量名

  声明方法成员的格式如下:

  [修饰符][static]  返回值类型 方法名 (参数列表)

  {

  方法体;

  }

  属性提供对类的没够特征的访问。一个属性可以有两个访问操作符,分别是getset,他们分别制定属性读取或写入新值的方式。格式如下:

  [修饰符][static] 类型 属性名

  {

  get{属性读取过程}

  set{写入新属性值的过程}

  }

  在类的成员声明中,用static关键字声明静态成员,静态成员属于整个类,该类的所有实例共享静态成员,实例成员的声明没有static关键字,该类的每个实例都有自己专有的实例成员 

  对象声明的格式:

  类名 对象名;

  对象的声明并没有实际创建新的对象,需要用new才做符在需要的时候创建新的对象,格式如下:

  类名 对象名 =new 与类名相同的构造方法(参数列表);

  EG

  Stack s=new Stack()

  对象引用类的成员变量:

  对象名.成员名;

  对象调用方法:

  对象名.方法名(参数表)

  不同于C++,在C#中,程序员只需要创建所需对象,不需要显示的摧毁它们。.NET平台的垃圾回收机制自动判断对象是否还在被使用,并能自动销毁不再使用的对象,回首这些对象所使用的内存资源。

  C#中类的继承和镶嵌

  继承方式,派生说明

  修饰符 class 类名:基类名————————————对比C++派生,class 类名:派生方式也就是修饰符 基类名

  在没有显示地表明基类的所有类,都隐式地继承自object类(System.Object)。

  当派生类成员名与基类成员名同名时,称派生类成员将基类同名成员隐藏,此时应在派生类成员定义中加上new关键字。C++中这种情况叫做同名覆盖,派生类的成员替代了基类的成员

 

  this base

  C#中用this访问对象自身,用base访问基类

转载于:https://www.cnblogs.com/eaviwind/p/5227927.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值