C,C++程序员使用C#应注意的一些小问题[2]

11C#中用getset表示设置器函数,用于获取或设置类中各权限数据

C#中内置value关键值用于表示set函数中用户传递值

12C#object类是所有其他类型的基类,所有类型都直接或间接地从object类中继承

       对一个object的变量可以赋予任何类型的值

       Objectsystem.object的别名

13C#中有四种引用类型: 类,代表,数组,接口

14C#delegate(代表),实际上是C#中函数指针的原型,但是此用法是安全的

       C#中一般使用引用,与C++中引用类似。

15C#中数组声明时,方括号放在类型之后表示数组,而不是放在变量名之后。

       int[] array = new int[5]  声明一个有5int类型元素的数组

C#中各种数组的声明有多种形式

二维数组  int[ , ] array   方括号中间用“ , “隔开  (每维元素个数一致)

三维数组 int[ , , ]   用多个逗号分隔表示多维数组

可变数组 int[][]    用多个中括号表示可变数组,每一维的元素个数可变

                     Int[][][] …..

16.关于数组的初始化(与C,C++不同的方法)

Int a[] = new int[] {1, 2, 3}

Int a[ , ] = new int[ , ] {{1,2,3},{4, 5, 6}}

Int a[ , ] = new int[10, 20]

Int a[ , , ] = new int[10, 20 ,30]

Int a[][] = new int[3][]  可变数组最高维必须指定

关于可变数组

Int a[][] = new int [3][]

Int a[0] = new int[] {1, 2}

Int a[1] = new int[] {1,2,3}

Int a[2] = new int[] {1,2,3,4}

       函数中传递数组示  void function(int[] a);   //形式

使用时    int[] array = new int[5];  function(array);或者 function(new int[] {1 ,2 3});

17C# is关键字

  int i = 5;  object obj = (object)i;    此时 object is int 返回 true

注意  任何类型都可以赋值给object类型

因为object类型是所有类型的基类,当赋值发生时,就会有个装箱的过程,object对象中存储了装箱的对象类型和装箱对象的值。

当把一个object类型的对象赋予一个其他类型的变量,对应一个拆箱过程,此时需要注意类型兼容

18C#中允许用“@+关键值来命名变量,其中@不是变量的一部分,而是给编译器指出此变量名不是关键字。

19C#中有7种变量类型

静态变量(static variables),非静态变量(instance variables),数组元素(array variables),值参数(value variables),引用参数(reference parameters),输出参数(output parameters),局部变量(local variables)

       其中引用参数用 ref关键字声明,输出参数用out 关键字声明

20.隐式转换

a.隐式数值转换    向上转型 up-casting      0 可以隐式转换为任意整形

b.隐式枚举转换

c.隐式引用转换 

              1.任何引用类型到对象类型的转换

              2.从类类型s到类类型t的转换,其中st的派生类(如int赋值给object

              3.从类类型s到接口类型t的转换,其中ts的父接口

              4.从元素类型为Ts的数组类型S向元素类型为Tt的数组类型T的转换

           转换满足条件:

a. ST只有元素的数据类型不同,但他们的维数相同

                     b. TsTt都是引用类型(注意:数组元素的类型必须是引用类型)  

                     c. 存在从TsTt的隐式引用转换

                     d. 从任何数组类型到SystemArray的转换

                     e. 从任何代表类型到SystemDelegate的转换

                     f. 从任何数组类型或代表类型到System.ICloneable(不清楚,待查)的转换

                     e. 从空类型(null)到任何引用类型的转换

 

[待续] 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值