zoukankan      html  css  js  c++  java
  • 天轰穿C#教程之值类型[原创]

      这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上。注意区分某个类型是值类型还是引用类型,因为这种存储位置的不同会有不同的影响。

      

      例如,int是值类型,这表示下面的语句会在内存的两个地方存储值20:

      

      using System;

      

      namespace预定义类型

      

      {

      

      classProgram

      

      {

      

      staticvoid Main(string[] args)

      

      {

      

      int i = 20;

      

      int t = i;                           //将i的值赋给t

      

      Console.WriteLine("t 的值为 {0}", t);//打印出结果

      

      t = 100;                             //改变变量t的值

      

      Console.WriteLine("i 的值为 {0}", i);//改变t的值后再次打印出结果

      

      Console.ReadLine();

      

      }

      

      }

      

      }

      

      执行后的效果如图2-14

      

      图2-14

      

      小天:我明白了,因为值类型的变量是直接存储值。所以当申明变量i并赋值为20的时候,在内存中就直接开辟一片空间将20存起来。再次申明变量t的时候,将i作为值交给变量t,其实给的也是20这个值。t得到值后,也重新开了一片空间放起来。后面我们再次修改t的值的时候,其实就是将t的空间中的20扔了出来,然后放了个100进去。可是这个过程压根就影响不到i空间的值。

      

      总结下,在C#中,基本数据类型如bool和long都是值类型。如果声明一个bool变量,并给它赋予另一个bool变量的值,在内存中就会有两个bool值。如果以后修改第一个bool变量的值,第二个bool变量的值也不会改变。这些类型是通过值来复制的。

      

      本文为天轰穿原著,转载请注明出处及作者!

  • 相关阅读:
    在mac下使用ppk文件ssh到远程主机
    Openstack镜像和密码
    ubuntu下如何用命令行运行deb安装包
    python中使用@property
    linux里的vi怎么移动到最后一行
    Git 怎样保证fork出来的project和原project(上游项目)同步更新
    使用msgfmt编译多语言文件
    ubuntu创建文件夹快捷方式命令
    ssh: connect to host localhost port 22: Connection refused 问题
    excel中如何批量将所有的网址设为超链接
  • 原文地址:https://www.cnblogs.com/thcjp/p/2733351.html
Copyright © 2011-2022 走看看