zoukankan      html  css  js  c++  java
  • 深入c#数据类型

    数据类型按存储方式可分为两类:值类型和引用类型.

    1值类型

    值类型源于System.ValueType家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,

    值类型数据所在的内存区域成为栈(Stack),只要代码中修改它,就会在它的区域内保存这个值,值类型主要包括基本数据类型和枚举类型等.

    对于值类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值,赋值操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值.

    2.引用类型

    引用类型源于System.Object家族,在C#中引用类型主要包括数组,类和接口等.

    对于引用类型,赋值是把原对象的引用传递给另一个引用,对数组而言,当一个数组引用赋值给另一个数组引用后,这两个引用指向同一个数组,也就是指向同一块

    存储空间.

    细分值类型和引用类型

    值类型:1. 基本数据类型  2.枚举类型   3.结构类型  

    引用类型: 1.类   2.接口   3.数组  

    结构

    1.结构的定义   

    访问修饰符   struct  结构名

    {

         //结构体

    结构的定义有以下特点:

    1.结构中可以有字段,也可以有方法

    2.定义时,结构中的字段不能被赋初值

    结构的使用

    1.可以不用new

    2.声明结构的对象后,必须给结构的成员赋初值.

    装箱和拆箱

    1 int i = 123;
    2 object o = i;      //装箱:值类型转换为引用类型
    3 int j=(int)o;     //拆箱:引用类型转换为值类型

     不同类型的参数传递

    1.怎样区分是值传递还是引用传递?

    判断依据是有没有ref.

    2.使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留.

      使用值方式(不用ref修饰)传递引用类型参数时,参数在方法中的修改会保留

      使用引用方式(用ref修饰)传递值类型或引用类型参数时,参数在方法中的修改都会保留

  • 相关阅读:
    [网鼎杯 2018]Comment-Git泄露部分
    Google Hacking 详解
    macOS修改Docker容器的端口映射配置
    CentOS6 7 8更换阿里yum源
    XSS代码合集(含测试效果详细版)-HTML4与更早版本的向量2
    VMware 启动Ubuntu时黑屏
    XSS代码合集(含测试效果详细版)-HTML4与更早版本的向量1
    APP安全在线检测网站
    Juice-Shop 二星题
    慕课网-安卓工程师初养成-4-5 练习题
  • 原文地址:https://www.cnblogs.com/liutao1122/p/7001775.html
Copyright © 2011-2022 走看看