zoukankan      html  css  js  c++  java
  • C#基本语法复习-理解值和引用

    复制值类型的变量和类:

      除了string类型为引用类型外,C#的大多数基本数据类型都是值类型。

      值类型复制时,会产生一个副本,对副本的修改不会对原值产生影响,而对于引用类型,对象只有一个是存储在堆上的,复制时只是将其引用进行复制,应用中包含了该对象的一个地址。

    理解null值和可空类型:

      可以将null赋值给引用变量。

    使用可空类型:

      null为一个引用不能将其赋给值类型,但是可以将一个变量声明为可空的值类型,int? i=null;

    理解可空类型的属性:

      hasvalue属性指出一个可空类型是包含一个真正的值,还是一个包含null,通过value属性可以获得值。

    使用ref与out操作:

      为了实现形参修改实参。

    创建ref参数:

      如果为一个参数附加了ref关键字作为前缀,该参数就会成为实参的一个别名,而不是一个副本,想一个ref参数传递一个实参时,实参也必须附加ref关键字作为前缀,格式如:

      void a(ref int a)

      {a++;}

      void b()

      {int arg=42;

      a(ref arg);}

      变量使用前必须赋值;

    创建out参数:

      out参数可由方法本身来初始化参数,在方法体中对实参进行初始化;

    计算机的内存组织方式:

      操作系统和运行时通常将用于容纳数据的内存分为两个独立的区域,每个区域都采用不同的方式进行管理,这两个区域就称为栈和堆;

      调用一个方法时,它的参数以及它的局部变量需要的内存总是从栈中获取,方法结束后,为参数和局部变量分配的内存将自动归还给栈

      使用new关键字来创建一个对象时,构造对象所需的内存总是从堆中获取的;

    system.object类:

      为所有类的一个基类;

    装箱:

      用object引用一个值类型如下:

      int i=32;

      object o=i;

      运行时在堆中分配一小片内存,然后i中的值的一个副本被复制到再片内存中,最后让o引用这个副本,这种将一个数据从栈自动复制到堆中的行为叫做装箱;

    拆箱:

      对已装箱的值进行前值类型转换

    数据类型的安全转换:

      is与as 操作符 is o is 类型 返回值是一个bool类型的值,as操作符则在判断的同时如果成功则直接返回该类型,失败则为null

      

  • 相关阅读:
    sed替换
    【工作提升】好员工秘诀十二条
    【工作提升】怎么样做工作才有好的效果
    vim删除空行和注释
    Java实现几种常见排序方法
    数据背后的二八定律,揭示程序员担忧的主要问题
    【新闻】国内第一本介绍程序员996现象的技术图书上市,“再谈工作996,生病ICU”一文受关注
    10年磨一剑:《SOD框架“企业级”应用数据架构实战》一书正式上市
    程序员肺被切掉一块还得去加班... 再谈“工作996,生病ICU”
    win10编译pdfium
  • 原文地址:https://www.cnblogs.com/hanshuidecangsanggan/p/4387521.html
Copyright © 2011-2022 走看看