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

     巧记:值(无ref)+值=不变
    值(无ref)+引=变
    引(有ref)+值/引=变
    1.值类型和引用类型

      1.引用类型

      源于system.object家族。

        (1)类

        (2)接口:interface

        (3)数组

        (4)字符串:string:

      2.值类型

      源于system.valueType家族

      值类型数据所在的内存区域为栈。

      3.值类型:

        (1)基本数据类型{int,long,double,byte~~~~}

        (2)枚举:enum

        (3)结构体:struct

    2.结构体

      1.定义:

      访问修饰符  struct   结构名

      {

                //结构体

      }

      (1)结构体可以有字段,方法,字段不能赋初始值。

      (2)可以不new,但有条件,结构体中有成员变量和成员方法,成员变量没有赋值,调用成员方法,不new会报错,所以一般先new。

      例如:

    复制代码
    复制代码
    public struct Student
    
    {
    
      public int num;
    
      public void  show()
    
      {
    //代码
      }
    
    }
    复制代码
    复制代码

      

    复制代码
    复制代码
    static void Main(string[] args)
    
      {
    
          Student stu;
    
          stu.num;
    
           stu.show();  
    
      }
    
      //没有给成员变量赋值,报错
    复制代码
    复制代码

      

    复制代码
    复制代码
    static void Main(string[] args)
      {
    
          Student stu;
    
          stu.num=10;
    
           stu.show();  
    
      }
    
      //给成员变量赋值,不报错
    复制代码
    复制代码

      

    复制代码
    复制代码
    static void Main(string[] args)
      {
    
          Student stu=new Student();
    
          stu.num;
    
           stu.show(); 
    
      } 
    
       //new出来,不报错
    复制代码
    复制代码

    3.装箱和拆箱 

      提示:尽量减少装箱和拆箱,因为他们会消耗程序的性能。

      1.值类型 =============> 引用类型   (装箱)

         引用类型 =============> 值类型   (拆箱)

      2.要避免装箱和拆箱因为会减低程序性能。

    4.引用方式参数传递

      (基本数据类型,如,整形,浮点型,字符型,bool行及结构属于值类型;数组,接口和类属于引用类型)

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

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

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

  • 相关阅读:
    java支持跨平台获取cpuid、主板id、硬盘id、mac地址 (兼容windows、Linux)
    Oracle 数据导入导出
    Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
    Liunx下查看服务器硬件信息
    Linux文件类型及如何查看,修改文件读写权限
    Linux ext3 ext4 区别
    网站访问量大 怎样优化mysql数据库
    LeetCode——Coin Change
    LeetCode——two sum
    LeetCode——Edit Distance
  • 原文地址:https://www.cnblogs.com/liehuonanjue/p/8166067.html
Copyright © 2011-2022 走看看