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

    一:值类型和引用类型

     1.值类型:

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

      所在的内存区域称之为栈(Stack),只要在代码中修改它,就会在内存区域保存这个值。

      (对于值类型,不同的变量会分配不同的存储空间,并且在存储空间中存储的是该变量的值。赋值操作

              传递的是变量的值,改变一个变量的值不会影响另一个变量的值)

     2.引用类型:

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

           如图:

      

        问题:有一个小程序,以知张浩和李明去年的身高都是170,体重为60,而今年李明张到了180和70,现在要输出俩

      人的身高体重。

          a.错误的思维方式及代码:

      

        运行结果

                  我们发现张浩和李明的身高体重都发生了变化不符合要求

       b.正确的思路及代码:

       运行结果

    图解原理

    二:结构

      1.语法:

      访问修饰符   struct  结构名

                 {

        //结构体

        }

          2.结构定义有以下特点

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

       b.定义时,结构的字段不能被赋值

      3.结构的调用注意事项

        a.在某些特定情况下可以不用new,直接定义结构对象即可(尽可能的去new)

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

    三:装箱和拆箱

      1.所谓装箱即是将值类型转换为引用类型,反之称作为拆箱

      示例代码:

           装箱:

      

      拆箱:

      

         2.注意事项:我们这里讲解装箱拆箱主要是让大家了解它的概念,但其实在实际开发之中我们应该减少装箱与

            拆箱的使用,因为二者的存储方式不同,转换的时候性能损失较大。

    四:不同类型的参数传递

     1.值传递和引用传递  

      有没有ref,有ref的为引用传递,没有的为值传递

        2.ref字母能改变什么

              值传递:1 值类型(不会改变)  2 引用类型(会改变)

              引用传递:3 ref 值类型(会改变)4 ref 引用类型(会改变)

     

      

  • 相关阅读:
    node.js 笔记一
    mysql 错误2203 1061 及安装最后出现2003现象的解决办法
    git shell 命令大全
    Mysql常用命令行大全
    php 魔术方法 说明
    php linux 环境搭建
    Linux下源码编译安装MySQL 5.5.8
    linux 压缩解压缩命令
    ftp 命令全集
    sublime text2
  • 原文地址:https://www.cnblogs.com/yzwss/p/8158010.html
Copyright © 2011-2022 走看看