C#对象小知识点

来源:互联网 发布:gzip压缩linux 编辑:程序博客网 时间:2024/05/14 15:36
     -->C#面向对象——for循环,大家用的非常多,也用的非常熟练,但是既然有foreach,就说明foreach也有它的好处,现比较foreach与for的利弊。
     -->foreach语法:
         foreach(类型名 临时变量 in 要遍历的对象)
         {
              Console.WriteLine(临时变量);//这里只是一种功能,其实这对大括号就是执行循环体,只不过只有临时变量可以用,要遍历的对象不”参加“循环体中的运算。
         }
         例子:string[] strs=new string[3]{"a","b","c"};
                    foreach(string temp in strs)
                    {
                          Console.Write();
                    }
                    //显示abc。
     -->foreach执行原理:首先在中,找总数strs.Length、找数据类型string、找到开始的位置,然后将指针指向str[0]上面,假设是"0"的位置。开始遍历对象,指针向下移动一位,到1的位置,返回数据给临时变量,如果数据符合类型名条件就执行循环体,否则就结束整个循环。
     -->for语法及使用规则。
     -->foreach循环特点:foreach遍历数据是通过使用一个临时变量,将值复制一份放到临时变量中,再执行循环体,因此无法访问到真正的数据,故是只读,不可写;是否继续循环是由数据类型决定的,一旦开始就一直执行循环体,直到遍历完所有内容;
     -->fore循环特点:for循环是通过对象名加索引来执行循环体;for循环呢可以控制循环进度、位置和顺序;for循环可以直接访问到数组中的内容,故可以修改数据。
     -->foreach循环一般用在遍历数组的时候使用,因为比较方便,而且对于没有顺序的数据即乱序数据的时候也用foreach循环,更多是用在集合中。
     -->for循环用于需要对数据进行批量操作的时候,比如将数组中的每个内容加上某些东西。for循环除了一些特殊场合不能使用,其它地方一般都会使用。
     -->C#面向对象——装箱与拆箱。装箱是值类型——>object类型的过程;拆箱是object类型——>值类型的过程。
     -->例子:
          int num=10; //在线性栈开辟空间进行的操作。
          object obj=num;//装箱的过程,是在托管堆中进行的,在托管堆中开辟一块内存空间,存放num复制过来的数据,是复制过来的数据。
          innt num2=(int)obj;//拆箱的过程,是将拖管堆中的数据取出来,再强制转换赋值给num2。
          //但是如果装箱的是一个变量的地址,即将一个引用类型的数据复制过来并装箱,如果修改原来的数据,那么拆箱之后的数是被修改过的数据。

          //装箱与拆箱,能够保证值类型的数据不被修改,”保存“了数据;但是对于引用类型的数据,就无法保证其安全性了。

     备注:写于2013年6月9日

0 0
原创粉丝点击