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

    1.值类型和引用类型

      1.值类型:

      源于system.valueType家族

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

      2.引用类型

      源于system.object家族。

        (1)类

        (2)接口:interface

        (3)数组

        (4)字符串:string

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

  • 相关阅读:
    第8章 字符串
    第7章 方法
    第6章 类和对象
    第5章 数组
    第4章 循环结构、break与continue
    第3章 选择结构
    第2章 变量、数据类型和运算符
    Codeforces Round #426 (Div. 2)
    CCNA学前基础一
    Tinkoff Challenge
  • 原文地址:https://www.cnblogs.com/wxl941549541/p/8157771.html
Copyright © 2011-2022 走看看