C#基础--之数据类型

C#基础–之数据类型
在第一章我们了解了C#的输入、输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半。在你阅读完本章后,你就有足够的C#知识编写简单的程序了。但还不能使用封装、继承、多态或其它面向对象的特征。
本章主要针对以下几个部份来进行讲解:
1、电脑是由什么来存储所使用的数据?
2、基本数据类型有哪些?
3、如何声明变量和赋值?
4、变量和常量的区别?
5、不同数据类型之间是如何转换的?
下面,我们现一个一个的来了解这些问题。

一、电脑是由什么来存储所使用的数据?这个问题用一句话比较笼统的概括,那就是:电脑使用内存来记忆计算时所使用的数据。在现实生活中的数据各种各样,整数、小数、字符串、字符等等,它们的类型是不一样的,所以你要想在计算机中使用这些类型,就必须在内存中为它申请一块合适的空间。那有哪些数据类型是C#能使用的呢?我们一起来看一看.二、基础数据类型有哪些首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远:这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)1、整型

在这里插入图片描述

2、浮点类型
在这里插入图片描述

float数据类型用于较小的浮点数,因为它要求的精度较低。

double数据类型比float数据类型大,提供的精度也大一倍(15位)。
如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。
如果想指定该值为float,可以在其后加上字符F(或f),如:
float f = 12.3F;

3、decimal类型
在这里插入图片描述

decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。
要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:
decimal d=12.30M;4、bool(布尔)类型

在这里插入图片描述

5、char字符类型

在这里插入图片描述

 char类型的字变量是用单引号括起来的。     如'A'如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。6、引用类型(Object类型和字符串类型)

在这里插入图片描述

三、如何声明变量和赋值?
1、变量的定义:是指在程序的运行过程中随时可以发生变化的量
2、上面我们提到,变量在运行时当中是存在内存当中的,它是一个临时的存放场所。
那么在内存当中,可以存放如数字、字符串、日期等等各种类型的数据。

大家可以看一看这张图,它就把表示内存当中的一个状态。

在这里插入图片描述

简单的来说,变量就是表示内存当中的一块存储区域。

它会对应一个唯一的内存地址,但是我们在使用程序当时候,内存地址不好理解也不好记忆。
那么怎么办呢?

在日常生活当中我们都有一个名字,如"张三“、”李四“等,这些名字就是为了便于记忆。
那么同样,在程序当中,为了区别多个变量,那就需要为每个变量赋值一个简短,便于记忆的名字,
这就是变量名。

 3、 C#中的变量的命名是是有规则的:1)、由字母、数字或下划线"_"组成2)、必须由字母或下划线"_"开头,不能以数字开头3)、不能是c#中的关键字 如:int、string、bool、Main、class等 4)、区分大小写  如:小写的a  和  大写的A 是两个变量4、做为一个比较好的学习者,就必须遵守一些变量命名规范:1)、变量的名字要有意义,尽量用对应的英语命名,具有“见名知意“的作用。如:姓名   变量取名为 name 或者 用拼单  xingMing,避免用a,b,c来进行命名。2)、避免使用单个字符作为变量名( 除在循环里面定的变量)3)、当使用多个单词组成变量名时,应该使用骆驼(Camel)命名法骆驼(Camel)命名法:第一个单词的首字母小写,其它单词的首字母大写,如:myName,myAge选择题:以下变量命名正确的是(     )A、name、 _222*1、 9class、 publicB、_teacher、 void、 string、 myNameC、$Age、 corss、 fire、 _gradeD、_glass、 g23、 c_12、 my_first_25、变量的声明和赋值1)定义变量的语法:数据类型    变量名;      (定义一个年龄的变量,年龄是整数,所以变量定义如下:)int          age;         [系统会根据数据类型,在内存中分配不同大小的存储空间]每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)string name,address,origin,national ;2)为变量赋值语法:变量名 = 值;           (这里的=号表示赋值运算符,把=号右边的值,赋值给左边的变量名,最后以一个;[分号]结束)如:年龄18岁,姓名为“小张",家庭地址为“重庆南坪XXX",籍贯为“重庆",民族为“汉"age = 18 ;name = "小张" ;address = "重庆南坪XXX" ;origin = "重庆" ;national = "汉" ;

四、变量和常量的区别
变量:是指在程序的运行过程中随时可以发生变化的量
常量:是指在程序在运行过程中不会发生变化的变量

      常量的特点:1、必须在声明是赋值2、不能在在程序运行时,给常量赋值3、常量是静态的。不必须(实际上,是不允许)在常量声明中包含修饰符static 

五、不同数据类型之间是如何转换的
在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换 2)显式[又叫强制]类型转换
举个简单例子:
飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换

       那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,但是程序可能做到这一点,我们把这种叫做显式[又叫强制]类型转换在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换     2)显式[又叫强制]类型转换举个简单例子:飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,但是程序可以做到这一点,我们把这种叫做显式[又叫强制]类型转换double和int之间就是(飞机场与飞机)这种关系,我们可以这样理解,double的取值范围比int要大得多所以double可以装得下int :int a=1234;   double b=a;   系统会把a整型变量的值赋值给double变量b.这就是隐式[又叫自动]类型转换那反过来:double a=1234;int b=a;        //系统编译时会报错,如图:那如何进行强制转换呢?c#提供了非常简便的方法,如:double a=1234;int b=(int)a;      //这样就强制把double类型,转换为int类型最后,再介绍一下,其它数据类型之间的转换(1、字符串转换为其它类型   2、任意类型之间的转换)1)、字符串转换为其它类型       语法:XX.Parse(字符串);         这里的xx代表的如:double,int,bool等举个例子来说明一下:string strValue="123.45";     //这是一个字符串,时面的值是"123.45"现要把它转换成小数类型,就可以使用double.Parse();来进行转换double dValue=double.Parse(strValue);2)、任意类型之间的转换语法:     Convert.ToXX(任何类型);如:把一个布尔类型转换为整型bool a = true;int b = Convert.ToInt16(a);Console.WriteLine("转换后的结果是:"+b);  //转换后的结果是:1ok, 经过以上的学习,我相信大家对C#的一些基础知识有一定的了解,那么下一章我将介绍C#的算术运算符、逻辑运算符、关系运算符,以及控制程序流的语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电视盒子哪个好?2024口碑网络电视盒子排行榜

多年来电视盒子始终占据重要地位,功能上并没有受到影响。在这么多品牌中哪些电视盒子的评价是最好的呢?小编根据各大电商平台的用户评价情况整理了口碑最好的网络电视盒子排行榜,跟着小编一起看看市面上的电视盒子哪个好吧。 TOP 1&#xff1…

OpenHarmony 资源调度之内存管理源码分析

作者:张守忠 1 内存管理简介 内存管理部件位于全局资源调度管控子系统中,基于应用的生命周期状态,更新进程回收优先级列表,通过内存回收、查杀等手段管理系统内存,保障内存供给。 1.1 内存管理框架 内存管理部件主要…

通过IPV6+DDNS实现路由器远程管理和Win远程桌面控制

前期需要的准备: 软路由,什么系统都可以,要支持IPV6,能够自动添加解析 光猫的管理员账号,能够进入光猫修改配置,拨号上网账号 域名账号和DNS服务 主要步骤: 利用管理员账号,进入…

外贸开发信必知技巧:高回复率不再是梦

外贸行业在Zoho的客户群体中占比较高。因为我们的国际化背景、丰富的产品组合、多语言多币种跨时区、高性价比等特点,成为外贸企业开展业务的选择。在和外贸客户沟通中,发现无论是外贸大拿还是新手小白,大家遇到一个共同的问题——发出去的开…

深入浅出dhcpcd:Linux环境下的动态主机配置协议客户端

在现代网络环境中,自动获取IP地址和网络配置已成为基本需求。动态主机配置协议(DHCP)在简化网络配置方面发挥了关键作用,它允许设备自动从网络服务器获取IP地址和其他网络配置信息。Linux系统中的dhcpcd(Dynamic Host …

抖音上阳哥的视频号带货推荐靠谱吗?

在抖音这个短视频平台的广阔天地里,阳哥以其独到的眼光和精准的推荐,成为了众多粉丝心中的带货指南。不同于一些网红直接进行视频号带货,阳哥更多地是以一个推荐人的身份出现,为粉丝们筛选并推荐优质的带货内容。那么,…

python——列表(list)

概念 列表一般使用在一次性存储多个数据 语法 lst[数据1,数据2,.....]方法 #mermaid-svg-flVxgVdpSqFaZyrF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-flVxgVdpSqFaZyrF .error-icon{…

每日一题:找到冠军I

一场比赛中共有 n 支队伍&#xff0c;按从 0 到 n - 1 编号。 给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0 < i, j < n - 1 且 i ! j 的所有 i, j &#xff1a;如果 grid[i][j] 1&#xff0c;那么 i 队比 j 队 强 &#xff1b;否则&#x…

图像版PDF文件OCR识别转换为文本的3款免费工具软件

图像版PDF文件里面都是图片&#xff0c;要先通过OCR技术识别出文本&#xff0c;然后才能进行进一步处理编辑。下面是3个免费的PDF文件OCR识别软件工具&#xff1a; ●简可信PDF批量识别工具 简可信PDF批量识别工具是一款专门用于将PDF文件进行批量OCR&#xff08;光学字符识别…

针对“AI+医疗”的可行方案

针对“AI+医疗”的可行方案如下: 一、方案目标 利用AI技术,结合医疗数据,开发一套高效、准确的医疗辅助系统,旨在提高医疗诊断的精度、加速药物研发进程、优化疾病预测模型,从而辅助医生进行疾病诊断和治疗方案制定。 二、方案内容 医疗数据整合与预处理 收集各类医疗数…

ObjectiveC-第一部分-基础入门-学习导航

专题地址:MacOS一站式程序开发系列专题 第一部分:基础入门学习导航 OSX-01-Mac OS应用开发概述:简单介绍下MacOS生态、Xcode使用以及使用Xcode创建app的方法OSX-02-Mac OS应用开发系列课程大纲和章节内容设计:介绍下此系列专题的文章内容组织形式以及此系列专题的覆盖内容…

【QT教程】QT6 Web应用实战

QT6 Web应用实战 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…

二叉树,非递归的深度遍历

#include<iostream> using namespace std; #define MAXSIZE 500 typedef struct tree{char data;struct tree *lchild;struct tree *rchild;}tree,*Tree;//非递归算法的深度遍历 //不利用系统的递归栈&#xff0c;自己自定义栈&#xff0c;用来实现先序遍历 //先将右孩子…

虚假贸易防控:国资委74号文解读,技术人员如何建防?

官.网地址&#xff1a;合合TextIn - 合合信息旗下OCR云服务产品 2023年12月&#xff0c;国资委发布《关于规范中央企业贸易管理严禁各类虚假贸易的通知》&#xff08;国资发财评规[2023]74号&#xff09;&#xff0c;提出“十不准”&#xff0c;严禁央企开展各类虚假贸易业务…

斐波那契数列经典应用之兔子繁殖问题

问题描述 此处有一题&#xff1a;有一对小兔子&#xff0c;从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律&#xff0c;假设没有兔子死亡&#xff0c;第一个月有一对刚出生的小兔子&#xff0c;问第n个月有多少对兔子&#xff1f; 分析…

Vue 引入config.js后别的js访问不到window对象下的属性

Vue项目里,我们项目配置的请求服务器地址都是在public里config.js里,如下例: 然后在index.html里引入config.js,如下图: 这里要注意的是,script的src要写上<%= BASE_URL %>,代码如下: <!DOCTYPE html> <html><head><meta charset="…

LeetCode 每日一题 ---- 【2923. 找到冠军 I】

LeetCode 每日一题 ---- 【2923. 找到冠军 I】 2923.找到冠军I方法一&#xff1a;暴力求解 2923.找到冠军I 方法一&#xff1a;暴力求解 从头遍历一遍二维数组&#xff0c;如果发现 gird[x][y] 1&#xff0c;说明 x 队赢过 y 队&#xff0c;下面我们就只需要子再判断一下是否…

NCBI 数据下载

网上介绍的那几种直接下载NCBI数据的方法大都下载速度很慢&#xff0c;但是EBI (European Bioinformatics Institute) 下载很快&#xff0c;而且它的数据库和NCBI是共享的&#xff0c;所以我们可以直接从 EBI 下载。 1 、 确定要下载的 SRA 编号&#xff1b; 2 、 EBI (https…

单片机的按键消抖/开关量监测函数(附源码,可移植)

方案一&#xff1a;纯软件延时 sbit KEY P1^3; ///按键读取函数 uint8_t GetKey(void) {if(KEY 1){DelayMs(20); //延时消抖if(KEY 1){return 1;}else {return 0;}}else {return 0;} }致命缺点&#xff1a;在延时的时候一直占用cpu的资源&#xff0c;如果在延时的时…