C#入门之路01-数据类型


此文章中和多东西有可能讲的有点深,如果是初学者,只挑自己看到懂的就行,完全不会影响全局的理解!
其实学了这么多年语言,最大的收获就是很多语言的核心都是一样的,编程语言就像国家的交际语言一样,不管是中文,英语,德语,阿拉伯语,其实我们可以很简单的发现他们都有名词,形容词,语法,语境这些东西,其实编程语言也一样,一般都会有数据类型,包装类,流程控制,函数等等,在这系列的文章中,我将以自己对C#的理解,把C#分为很多小部分,一部分一部分跟大家娓娓道来,这个时代,很多人都喜欢学Python,很多大厂都很青睐C++,这个我完全认同,C++确实是最难最复杂灵活性最高的语言,Python在人工智能方面确实有很大优势,但是不知道为什么,我见到C#的第一眼,就喜欢上了这个语言,我认为C#在游戏开发上的舒适程度很好,他的和多特性也和游戏开发息息相关,反射可以得到类的信息,委托和事件直接包装了一种设计模式(观察者模式),这也是我想写这系列文章的原因,废话有点多了,开始今天的内容吧!

数据类型和数据结构的区别

先说说我对数据类型的理解,归根到底,程序就是对数据进行处理的可执行文件,一个简单加减乘除就是对数字的处理,复杂的游戏,也就是对很多用户的输入进行处理,所以对于一门语言来说,可以处理的数据类型有哪些就是很重要的,但是数据结构就是处理数据的组织形式,对数据的组织结构,比如数组就是把很多数据线性存储起来,所以总结二句话:
1数据结构里面装的是数据
2数据结构的实现要使用很多数据类型(数据结构总是要被开发者或者厂商包装出来的,包装基本就是类,类也是数据类型,类里面的变量也都是数据结构)

数据类型种类大全

那么C#的数据类型有哪些呢,基本大方向就是下图:
在这里插入图片描述

简单类型:

bool 布尔值 True 或 False False
char 16 位 Unicode 字符 U +0000 到 U +ffff ‘\0’
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F
int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0
long 64 位有符号整数类型 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
short 16 位有符号整数类型 -32,768 到 32,767 0

复杂类型:

剩下的类型Struct,类,enum,接口,委托大家知道就行,这篇文章不能详细讲,因为剩下的每一个数据结构都需要一篇文章来仔细讲解。就像雪中悍刀行的老黄说的饭要一口一口吃,程序员更是,都是一夜一夜的代码累出来的大佬。

值类型和引用类型的区别

值类型保存在声明的位置,引用类型一定保存在堆中

这里的栈不是数据结构,是底层保存数据的一段位置,堆也是,栈和堆的区别简单说就是栈小堆大,栈由操作系统自动分配释放,堆一般由程序员分配释放
下图是值类型,普通情况就会在栈中声明。
在这里插入图片描述
下图的Car是一个类,是引用类型,他的地址在栈上,内容都在堆上
在这里插入图片描述
引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。简称引用类型部署在托管推上。而值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实 例)存储;作为局部变量时,存储在栈上。(栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放)

引用类型可以派生出新的类型,而值类型不能,因为所有的值类型都是密封(seal)的

引用类型可以包含null值,值类型不能(可空类型功能允许将 null 赋给值类型,如 int? a = null; )

引用类型变量的赋值只复制对对象的引用,而不复制对象本身。而将一个值类型变量赋给另一个值类型变量时,将复制包含的值。

声明与赋值

知道了数据是什么,以后我们就要使用这些数据了,那么第一步就是声明出来这些数据,给他们赋值,如下

public class Test{
public static void Main () {
bool b = true;//声明bool型变量并赋值
int x, y=8;// 声明int型变量
float z = 4.5f; // 声明float型变量并赋值
double d = 3.1415; //声明double型变量并赋值
char c; //声明char型变量
c = '\u0031'; //为char型变量赋值
x = 12; //为int型变量赋值
} }

Over!
注:本人正在努力建设自己的公众号,大家可以关注公众号,此文章也上线我的公众号,公众号将免费提供大量教学Unity相关内容,除了从Unity入门到数据结构设计模式外,我还会免费分享我再游戏开发中使用的素材,书籍,插件,希望大家可以关注我,提前谢谢啦!
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珞珈大胖强TURBO

谢谢兄弟们,我会一直努力出货的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值