04 C#编程中的类型,存储和变量

1. C# 程序是一组类型声明

越是感觉简单的东西,简单的表述,就很难理解。

C#程序怎么去理解是一组类型声明呢?我们创建任何程序时,都是由变量,字段,方法组成。声明变量,声明方法,声明字段,就理解为一组类型的声明。

命名空间是一种将相关的类型声明分组并命名的方法

2. 类型是一种模板

C#中的数据类型,可看成是一个用来创建数据结构的模板。

模板详细的说了该构造对象的特征。

例如:

short-- 名称

2byte --存储数据成员的数据结构

16位整数 -- 约束条件

3. 实例化类型

从某个类型模板创建实际的对象,称为实例化该对象。

short  i=12;

上代码我就称为创建了short(短整型)的对象或者实例

4. 数据成员和函数成员

数据成员:保存与这个类的对象或整个类相关的数据

函数成员:执行代码。函数成员定义类型的行为

5.预定义类型

C#提供了16种预定义类型(13种简单类型,3种非简单类型)

所有预定义类型的名称都由小写字母组成。

11种数值类型:

不同长度的有符号和无符号整数类型

浮点数据类型float和double

高精度小数类型decimal

字符类型char (Unicode)

布尔类型bool

3种非简单类型

String 一个Unicode字符数组

Object 所有类型的基类

Dynamic 使用动态语言编写的程序集时使用


6. 用户定义类型

6种类型可由用户自己创建

类类型class

结构类型struct

数组类型array

枚举类型enum

委托类型delegate

接口类型interface

7. 堆和栈

运行程序时,它的数据必须存储在内存中。运行中的程序使用2个内存区域来存储数据:栈和堆

:是一个内存数组,是一个LIFO(Last in First out 后进先出)的数据结构。

栈存储的几种数据类型:

某些类型变量的值

程序当前的执行环境

传递给方法的参数

栈:

数据只能从栈的顶端插入和删除

把数据放到栈顶称为入栈push

从栈顶删除数据称为出栈pop

堆是一块内存区域,在堆里可以分配大块的内存用于存储某种类型的数据对象。

堆里的内存能够任意顺序存入和移除。

CLR的自动垃圾收集器自动清除无主的堆对象。

8.值类型和引用类型

数据项的类型定义了存储数据所需要的内存大小以及该类型的数据成员。

类型还决定了对象在内存中的存储位置---栈和堆。

值类型:只需要一段单独的内存,用于存放实际的数据

引用类型:需要2段内存,第一段内存存储实际的数据,它总是位于堆中,第二段是一个引用类型,指向数据堆中的存放位置。

存储引用类型对象成员

引用类型对象的数据部分始终存放在堆里

值类型对象,或引用类型数据的引用部分可以存放在堆里,也可存放在栈里,依赖实际环境。


9.变量

变量是一个名称,表示程序执行时存储在内存中的数据。

变量声明

变量在使用前必须声明,变量声明定义了变量,完成了2件事:

给变量命名,并为它关联一种类型。

让编译器为它分配一块内存。

Intx=2;

变量初始化,由一个等号后跟一个初始值组成。

自动初始化


多变量的声明

多变量声明中的变量必须类型相同

变量名直接必须逗号分隔,可在变量名后包含初始化语句

例如:

int x = 7, y, z = 9;

Console.WriteLine($"x= {x},z={z}");

变量x, y, z都是同一类型,逗号分割,可声明时同时初始化值。

使用变量的值

变量名代表变量保存的值,可以通过使用变量名来使用值

Console.WriteLine($"x= {x},z={z}"); 使用变量的值

输出:x= 7,z=9

10. 静态类下和dynamic关键字

变量类型在编译确定并且不能再运行时修改,这称作静态类型。   

C#语言设计者增加了dynamic关键字,代表一个特定的C#类型,它知道如何在运行时解析自身。编译时,编译器不会对dynamic类型的变量做类型检查。

11.可空类型

可空类型允许创建标记为无效或者无效的值类型变量,普通的值类型为非可空类型。

后续有单独的章节讲述可空类型和使用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容