ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《刻意练习之C#》-0006- 类型系统

2020-06-01 21:07:12  阅读:244  来源: 互联网

标签:0006 struct CTS C# System 引用 类型 刻意 public


CTS (Common Type System)

.NET类型系统的基石:

  • 类型继承:一个类型可以继承至另一个类型(基类),继承基类的方法、属性和其他成员;.NET内置的数值类型都继承至基类System.Object (C#的关键字:object);这样的统一类型层级结构叫做CTS(common type system)

  • CTS 中的每种类型被定义为值类型或引用类型。使用 struct 关键字定义的类型是值类型;所有内置数值类型都是 structs。使用 class 关键字定义的类型是引用类型。引用类型和值类型遵循不同的编译时规则和运行时行为。

  • CTS中值类型和引用类型的层级结

 

值类型

  • 值类型有两类:enum和struct;

  • 值类型派生自System.ValueType,System.ValueType继承自System.Object;

  • 值类型是sealed,即不能被继承;

  • 内置的数值类型都是struct;struct一般用来把一组相关变量聚合到一起;

public struct Point
{
    public int x, y;

     public Point(int p1, int p2)
    {
        x = p1;
        y = p2;
    }
}

  

  • enum,一般用来定义一组带名字的整数:
public enum FileMode
{
    CreateNew = 1,
    Create = 2,
    Open = 3,
    OpenOrCreate = 4,
    Truncate = 5,
    Append = 6,
}
  • 值类型变量的内存一般是分配在栈中;

引用类型

  • 使用 class, delegate, array或interface定义的都是引用类型;

  • 引用类型变量的内存是在托管堆中(managed heap);

  • 什么引用类型变量后,变量值默认是null,知道使用new创建实例,或者赋值已经用new创建过实例的变量。

 

 

标签:0006,struct,CTS,C#,System,引用,类型,刻意,public
来源: https://www.cnblogs.com/codesee/p/13027418.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有