C#是强类型语言,因此每个变量和对象都必须具有声明类型。数据类型可描述为内置数据类型(如int或char),用户定义数据类型(如class或interface)。数据类型还可以定义为值类型(用于存储值),引用类型(用于存储对实际数据的引用)。

值类型

值类型的内容存储在堆栈分配的内存中,如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值类型。但string数据类型除外,它是引用类型。C#值类型分为简单类型,结构类型和枚举类型。

1.简单类型

C#提供了一组已经定义好的简单类型,分为整型,布尔类型,字符类型和实数类型。

2.结构类型

C#中的结构与类相似,但缺乏某些功能,例如继承。另外,由于结构是一个值类型,因此通常创建结构要比创建类的速度快。

在程序设计中,经常把一组相关的信息放在一起,。把一系列相关的变量组成一个单一的实体,这个单一的实体类型叫做结构。结构类型采用关键字struct进行声明。

3.枚举类型

枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。声明枚举类型用enum开头。例如:enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

枚举类型的元素使用的类型只能是long,int,short,byte。默认类型是int,且第一个元素的值是0,每一个连续的元素按1递增。枚举元素值可以改变。例如:enum weekday{Sunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

引用类型

引用类型的变量不直接存储所包含的值,而是存储所要存储值的地址。C#中的引用类型包括四种:类,数组,代表和接口。

装箱和拆箱

装箱是将值类型转换为引用类型的过程。装箱某个变量,就是创建一个引用变量,使它指向堆上的新副本。

拆箱,从对象中提取值类型,即将引用类型转换为值类型。

C#程序设计基础——数据类型的更多相关文章

  1. Oracle数据库之PL/SQL程序设计基础

    PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ ...

  2. C语言程序设计基础知识点概括

    C语言程序设计基础知识点概括 C语言程序设计基础知识点1.函数是C语言的基本构成单位.main函数是C语言程序的唯一入口.2.C语言程序开发过程. 编译过程:将以.c或.cpp结尾的源程序文件经过编译 ...

  3. 《C语言程序设计基础1》第二学期第一周学习总结

    **<C语言程序设计基础1>第二学期第一周学习总结 一. 本周学习内容总结 一维数组,了解了一维数组的定义(定义一个数组,需要明确数组变量名,数组元素的类型和数组大小,即数组中元素的数量) ...

  4. Java程序设计基础作业目录(作业笔记)

    持续更新中............. Java程序设计基础笔记 • [目录] 我的大学笔记>>> 第1章 初识Java>>> 1.1.4 学生成绩等级流程图练习 1 ...

  5. Java程序设计基础笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java程序设计基础作业目录(作业笔记) 第1章 Java程序设计基础笔记 • [第1章 初识Java] 第2章 Java程序 ...

  6. 程序设计基础·Java学习笔记·面向对象(下)

    Java程序设计基础之面向对象(下) (补充了上的一些遗漏的知识,同时加入了自己的笔记的ヾ(•ω•`)o) (至于为什么分P,啊大概是为了自己查笔记方便(?)应该是("` 3′") ...

  7. 程序设计基础·Java学习笔记·面向对象(上)

    Java程序设计基础之面向对象(上) (自适应学习进度而进行记录的笔记,希望有一些小小的用处吧(^∀^●)ノシ) (新人上路,望多指教,如有错误,望指正,万分感谢(o゚v゚)ノ) 目录 一.面向对象 ...

  8. C语言程序设计基础

    C语言程序设计基础 目录 C语言 C语言基础 C语言编程注意 C语言 C语言基础 C语言编程注意 0<9<9和0<9&&9<9是不同的 数组的声明和定义 con ...

  9. C#程序设计基础——常量

    C#程序设计基础——常量 常量是在编译时已知,并且在程序的生存期内不发生更改的不可变值.常量使用const修饰符进行声明. 常量必须在声明时初始化,且常量的类型必须为以下类型之一:sbyte/byte ...

随机推荐

  1. 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b

    偶然在群里看到这个小题, 就用python做了做. 思路就是建一个够大的列表并初始化,把每个字符的asc码作为下标,存到列表里, 然后该位置的值就存字母的出现次数, 最后再迭代原字符串并判断列表值是否 ...

  2. 关于配置tnsnames来使用PLSQL连接数据库

    关于配置tnsnames来使用PLSQL连接数据库 要想用ORACLE SQLdeveloper或者第三方工具PLSQLdeveloper.Toad等连接ORACLE数据库,必需要配置TNSnames ...

  3. 第四篇:R语言数据可视化之折线图、堆积图、堆积面积图

    折线图简介 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先 ...

  4. maven 启动忽略test

    两种方法 1,--命令 mvn install -Dmaven.test.skip=true 2.pom.xml 文件 在tomcat 下面的pom.xml 文件里面加上如下 <!--  ski ...

  5. VB几种函数参数传递方法,Variant,数组,Optional,ParamArray

    VB几种函数参数传递方法,Variant,数组,Optional,ParamArray 一) 过程的参数被缺省为具有 Variant 数据类型. 1)ByRef按 地址传递参数在 VB 中是缺省的 按 ...

  6. Javascript 获取url参数,hash值 ,cookie

    /** * 获取请求参数 * @param key * @returns {*} */ function getRequestParameter(key){ var params = getReque ...

  7. Gradle命令详解与导入第三方包

    Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看.编译并导入第三方开源项目的方法. Sublime + Term ...

  8. Canvas画椭圆的方法

    虽然标题是画椭圆,但是我们先来说说Canvas中的圆 相信大家对于Canvas画圆都不陌生   oGC.arc(400, 300, 100, 0, 2*Math.PI, false); 如上所示,直接 ...

  9. public static <T> Map<String, T> json2map

    /** * json string convert to map with javaBean */ public static <T> Map<String, T> json2 ...

  10. Android源码下载方法详解

    转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html Android源码下载方法详解 相信很多下载过内核的人都对这个很熟悉 ...