[C#基础] 数据类型
预定义类型
C#提供了16种预定义类型,其中包括13种简单类型和3种非简单类型。
预定义的简单类型包括以下3种:
- 11种数值类型
- 不同长度有符号和无符号的整数类型(8种)
- 浮点数类型float和double(2种)
- 高精度小数类型decimal(1种)decimal类型常用于货比计算
- 一种Unicode字符类型char
- 一种布尔类型
3种非简单类型
- string,它是一个Unicode字符数组
- object,它是所有其他类型的基类
- dynamic,使用动态语言编写的程序集使用
预定义简单类型表示一个单一的数据项,下表列出了这些类型,取值范围和对应的底层.NET类型
预定义非简单类型如下:
用户定义类型
除了C#提供的16种预定义类型,还可以自己创建类型。有6种类型可以让用户创建
- 类类型(class)
- 结构类型(struct)
- 数组类型(array)
- 枚举类型(enum)
- 委托类型(delegate)
- 接口类型(interface)
栈和堆
运行中的程序使用两个内存区域来存储数据:栈和堆
栈
栈是一个内存数据,后进先出的数据结构。栈存储几种类型的数据:
- 某些类型变量的值
- 程序当前的执行环境
- 传递给方法的参数
栈的特征
- 数据只能从栈的顶端插入或删除
- 把数据放到栈顶称为入栈
- 从栈顶删除数据称为出栈
堆
堆是一块内存区域,与栈不同,堆的内存数据可以从任意位置插入或删除
虽然程序可以在堆里保存数据,但并不能显示删除地删除它们。CLR的自动GC在判断出程序的代码将不会再访问某数据项时,自动清除无用的堆对象
值类型和引用类型
数据项的类型定义存储数据所需的内存大小及组成该类型的数据成员。类型还决定了对象在内存中的存储位置---栈或堆
类型被分为两种:值类型和引用类型
- 值类型只需一段单独的内存,用于存储实际的数据
- 引用类型需要两段内存
- 第一段存储实际的数据,它总是位于堆中
- 第二段是一个引用,指向数据在堆中的存放位置
C#类型的分类
上文列出了C#中可以使用的所有类型以及它们的类别:值类型或引用类型
变量
- 变量是一个名词,表示程序执行时存储在内存中的数据
- C#提供了4种变量
结尾
终于迈出了第一步。。。
[C#基础] 数据类型的更多相关文章
- [.net 面向对象编程基础] (3) 基础中的基础——数据类型
[.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...
- TypeScript学习指南第一章--基础数据类型(Basic Types)
基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var 定义变量,let定义常量. 比如 ...
- 二、Windows基础数据类型
六.Windows Data Types 简介: 6.1.这些数据类型都是C语言数据类型的再次的进行包装. 6.2.因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义. 6.3. ...
- java基础数据类型包装类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...
- Python基础数据类型之列表和元组
一.列表 list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...
- Python基础数据类型之字典
基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...
- Python基础数据类型之集合以及其他和深浅copy
一.基础数据类型汇总补充 list 在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...
- python基础二(基础数据类型)
一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...
随机推荐
- [转]SELinux管理与配置
原文链接:http://blog.csdn.net/huangbiao86/article/details/6641893 1.1 SElinux概述 SELinux(Security-Enhance ...
- 关于QT的系统总结(非常全面,非常好)
源地址:http://www.cnblogs.com/wangqiguo/p/4625611.html 阅读目录 编译环境与开发流程 QT项目的构成及原理 QT中的布局 QT中的通用控件 QVaria ...
- 【译】在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本
原文 [译]在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本 本篇文章是讲述使用iTextSharp这个开源组件的系列文章的第三篇,iTextSharp可以通过As ...
- WPF4多点触摸事件
原文 WPF4多点触摸事件 UIElement在WPF4下添加了很多支持多点触摸的事件,通过它们可以在硬件支持的情况下处理多点触摸,以下通过代码来说明通过处理这些事件,我们可以做些什么: 一.触摸相关 ...
- Step by step guide to set up master and slave machines(转)
Note: There is no need to install Jenkins on the slave machine. On your master machine go to Manage ...
- 基于visual Studio2013解决C语言竞赛题之0803报数
题目
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——3 计算4个函数
整个引擎代码在github上,地址为:https://github.com/sun2043430/RegularExpression_Engine.git nullable, firstpos, la ...
- Struts2+Spring+Hibernate step by step 03 整合Spring之中的一个(在DAO层验证username和password)
注:该系列文章部分内容来自王健老师编写SSH整合开发教程 目的:通过Spring创建数据库的连接,并通过Spring进行事务管理. 第一步:将Spring的包拷贝至当前项目的lib文件夹下,例如以下图 ...
- USB中CDC-ECM的了解和配置
USB中典型类及子类: 类别 解释 子类 典型应用 IC芯片 备注 UVC 视频类 免驱USB摄像头 CDC 通讯类 RNDIS ECM(p24) 免驱USB网卡 RTL8152B EEM ..... ...
- 使Web Api 支持跨域资源共享(CORS)
Reference:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api Imp ...