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

    1.数据类型按存储方式可分为两类:

    值类型(源于System.ValueType)

    引用类型(源于System.Object)

    2.结构的定义:

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

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

    3.结构的使用:

    可以不用new,直接定义结构的对象即可

    (前提该属性的类型不是数值类型)

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

    4.结构是值类型类是引用类型

    结构体中没有默认构造函数,但类中有默认构造函数

     5.装箱和拆箱:

    装箱:将值类型(栈)转换成引用类型(栈堆)

    拆箱:从引用类型(栈堆)转换成值类型(栈)

    由于装箱和拆箱对系统性能损耗很大,所以在真实的开发中我们尽量避免装箱和拆箱的操作。

    6.

    如果方法的参数类型本身是值类型,又没有ref修饰,那么对参数值的修改,不会永久保存

    如果方法的参数类型本身是值类型,但是有ref修饰,那么对象参数值的修改,也会永久保存。

     值类型传递 :不带ref的参数传递  

    引用类型传递:带ref的参数传递

    引用类型的内存原理图:

    数组赋值原理图

    结构体:

    结构体不用new,就可以直接对其属性赋值

    结构体中可以有字段,属性和方法

    结构体是值类型,类是引用类型

    在结构体中不能给字段赋初值,但是类中可以.

    结构体中没有默认构造函数,但类中有默认构造函数

  • 相关阅读:
    Leetcode 538. Convert BST to Greater Tree
    Leetcode 530. Minimum Absolute Difference in BST
    Leetcode 501. Find Mode in Binary Search Tree
    Leetcode 437. Path Sum III
    Leetcode 404. Sum of Left Leaves
    Leetcode 257. Binary Tree Paths
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
    Leetcode 226. Invert Binary Tree
    Leetcode 112. Path Sum
    Leetcode 111. Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/luoxionghenku/p/8159187.html
Copyright © 2011-2022 走看看