zoukankan      html  css  js  c++  java
  • 【C#语言规范版本5.0学习】1.2类型和变量

    C# 中的类型有两种:值类型 (value type) 和引用类型 (reference type)

    值类型的变量直接包含它们的数据,而引用类型的变量存储对它们的数据的引用,引用类型称为对象。

    对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象。

    对于值类型,每个变量都有它们自己的数据副本(除 ref 和 out 参数变量外),因此对一个变量的操作不可能影响另一个变量。

    C# 的值类型进一步划分为简单类型 (simple type)、枚举类型 (enum type)、结构类型 (struct type) 和可以为null 的类型 (nullable type)

    C# 的引用类型进一步划分为类类型 (class type)、接口类型 (interface type)、 数组类型 (array type) 和委托类型 (delegate type)

    C# 类型系统的概述


    八种整型类型分别支持 8 位、16 位、32 位和 64 位整数值的有符号和无符号的形式。

    两种浮点类型:float 和 double,分别使用 32 位单精度和 64 位双精度的IEEE754 格式表示。

    decimal 类型是128 位的数据类型,适合用于财务计算和货币计算。

    C# 的 bool 类型用于表示值为 true 或 false 的布尔值。

    在 C# 中,字符和字符串处理使用 Unicode 编码。char 类型表示一个 UTF-16 编码单元,string 类型表示 UTF-16 编码单元的序列。

    C# 的数值类型

     


     C# 程序使用类型声明 (type declaration) 创建新类型。类型声明指定新类型的名称和成员。

     在 C# 类型分 类中,有五类是用户可定义的:类类型 (class type)、结构类型 (struct type)、接口类型 (interface type)、 枚举类型 (enum type) 和委托类型 (delegate type)

     


    C# 支持由任何类型组成的一维和多维数组。与以上列出的类型不同,数组类型不必声明就可以使用。实际上,数组类型是通过在某个类型名后加一对方括号来构造的。

    例如,int[] 是一维 int 数组, int[,] 是二维 int 数组,int[][] 是一维 int 数组的一维数组。

    可以为 null 的类型也不必声明就可以使用。对于每个不可以为 null 的值类型 T,都有一个相应的可以为 null 的类型 T?,该类型可以容纳附加值 null。

    例如,int? 类型可以容纳任何 32 位整数或 null 值。

    C# 的类型系统是统一的,因此任何类型的值都可以按对象处理。C# 中的每个类型直接或间接地从 object 类类型派生,而 object 是所有类型的最终基类。

    引用类型的值都被视为 object 类型,被简单地当作对象来处理。

    值类型的值则通过对其执行装箱和拆箱操作按对象处理。

    下面的示例将 int 值转换为 object,然后又转换回 int。 

    using System;
    class Test
    {
    static void Main() {
    int i = 123;
    object o = i; // Boxing
    int j = (int)o; // Unboxing
    }
    }

    当将值类型的值转换为类型 object 时,将分配一个对象实例(也称为“箱子”)以包含该值,并将值复制到该箱子中。

    反过来,当将一个 object 引用强制转换为值类型时,将检查所引用的对象是否含有正确的值类型,如果有,则将箱子中的值复制出来。

     C# 的统一类型系统实际上意味着值类型可以“按需”转换为对象。因为统一,所以使用类型 object 的通用库可以与引用类型和值类型一同使用。


    C# 中存在几种变量 (variable),包括字段、数组元素、局部变量和参数。(定义的变量种类

    变量表示了存储位置,并且每个变量都有一个类型,以决定什么样的值能够存入变量,如下表所示。

  • 相关阅读:
    [模板] 循环数组的最大子段和
    [最短路][几何][牛客] [国庆集训派对1]-L-New Game
    [洛谷] P1866 编号
    1115 Counting Nodes in a BST (30 分)
    1106 Lowest Price in Supply Chain (25 分)
    1094 The Largest Generation (25 分)
    1090 Highest Price in Supply Chain (25 分)
    树的遍历
    1086 Tree Traversals Again (25 分)
    1079 Total Sales of Supply Chain (25 分 树
  • 原文地址:https://www.cnblogs.com/TechSingularity/p/14312322.html
Copyright © 2011-2022 走看看