• 第一章 数据类型


    C#数据类型分为两类:值类型,引用类型。

    值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈(即栈)上,引用类型存储在托管堆(即堆)上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱。

    集体参考:http:/www.cnblogs.com/John-Connor/archive/2012/04/13/2443765.html很重要,必看!!!!!

    1.值类型:简单类型,结构类型,枚举类型。

         简单类型:

              整形:sbyte,short,int,long,byte,ushort,uint,ulong.

                           浮点型:float,double,decimail

              布尔类型:bool

              char类型:char

         结构类型:struct(struct和类相似,但是没有继承)

    2.引用类型:类,对象,字符串

          例子:假设我们有个Member 类,字段有Name和Num:

    Member member1 = new Member { Name = "Marry", Num = "001" };
    Member member2 = member1;
    member1.Name = "John";
    Console.WriteLine("member1.Name={0}  member2.Name={1}",member1.Name,member2.Name);
    int i = 1;
    object o = i;
    object o2 = o;
    o = 2;
    Console.WriteLine("o={0}  o2={1}", o, o2);
    string str1 = "Hello";
    string str2 = str1;
    str1 = "Hello,World!";
    Console.WriteLine("str1={0}  str2={1}", str1, str2);
    Console.ReadKey();
    View Code

    结果:member1.Name=John member2.Name=John

       o=2 o2=1  以及str1=Hello,World! str2=Hello 

    原因:object,string 重新赋值的时候,堆会重新分配一个对象。

    根本原因:运算符重载。=重载:重新在堆中复制一个对象,并将新的引用赋值给改变的值。

  • 相关阅读:
    JavaScript实现接口的三种经典方式
    javascript实现继承3种方式: 原型继承、借用构造函数继承、组合继承,模拟extends方法继承
    JavaScript简单重写构造器的原型
    cocos2d-x中的宏定义CC_PROPERTY
    CCCallFunc CCCallFuncN CCCallFuncND的区别和使用
    action(二)
    action(一)
    CShopDialog类
    cocos2d-x与ISO内存管理(转)
    CGameConfig类
  • 原文地址:https://www.cnblogs.com/housh/p/4700735.html
Copyright © 2020-2023  润新知