• 深入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修饰)传递值类型或引用类型参数时,参数在方法中的修改都会保留

  • 相关阅读:
    [设计模式]暂时不考虑多线程的单例模式
    [设计模式]策略模式
    [设计模式]工厂模式
    [设计模式]观察者模式1(用JDK提供的API)
    使用visual studio 2013 快速搭建phonegap开发环境
    js日期计算及快速获取周、月、季度起止日
    HTTP 错误 500.21
    C# 实现对网站数据的采集和抓取
    js设置控件的隐藏与显示的两种方法
    jQuery操作checkbox选择
  • 原文地址:https://www.cnblogs.com/liutao1122/p/7001775.html
Copyright © 2020-2023  润新知