C# 图解教程 第5版 —— 第4章 类型、存储和变量

文章目录

    • 4.1 C# 程序是一组类型声明
    • 4.2 类型是一种模板(*)
    • 4.3 实例化类型
    • 4.4 数据成员和函数成员
    • 4.5 预定义类型
    • 4.6 用户定义类型
    • 4.7 堆和栈(*)
    • 4.8 值类型和引用类型
    • 4.9 变量
      • 4.9.1 变量声明
      • 4.9.2 多变量声明(*)
      • 4.9.3 使用变量的值(*)
    • 4.10 静态类型和 dynamic 关键字
    • 4.11 可空类型(*)

4.1 C# 程序是一组类型声明

  • C# 程序或 DLL 的源代码是一组类型声明
  • 类型声明中必须包含 Main 方法的类

4.2 类型是一种模板(*)

4.3 实例化类型

​ C# 程序中,每个数据项都是某种类型的实例。

4.4 数据成员和函数成员

  • 数据成员:保存了类对象或整个类的相关数据。
  • 函数成员:执行代码,定义类型的行为。

4.5 预定义类型

​ C# 中,数值类型不具有布尔意义。

image-20231015144912050
图4.1 预定义类型

​ 所有预定义类型都直接映射到底层的 .NET 类型,C# 的类型名称就是 .NET 类型的别名。

​ 应尽量使用 C# 类型名称而不是 .NET 类型名称。

表4.1 预定义简单类型
image-20231015145053081
表4.2 预定义非简单类型
image-20231015145123951

4.6 用户定义类型

​ C# 中可创建的 6 中用户类型:

  • 类(class)
  • 结构(struct)
  • 数组(array)
  • 枚举(enum)
  • 委托(delegate)
  • 接口(interface)

4.7 堆和栈(*)

4.8 值类型和引用类型

  • 值类型:需要一段单独的内存

    • 用于存储实际数据
  • 引用类型:需要两段内存

    • 第一段存储实际数据,位于堆中
    • 第二段是一个引用,指向堆中的数据
image-20231015150016381
图4.2 非成员数据的存储
表4.3 C# 中的值类型和引用类型
image-20231015150151459

4.9 变量

表4.4 4种变量
image-20231015150251955

4.9.1 变量声明

  1. 变量初始化语句

无初始化语句的局部变量有一个未定义的值,在赋值之前不能使用。

image-20231015150445452
图4.3 变量初始化语句
  1. 自动初始化

    一些类型的变量在声明时如果没有初始化语句,会被自动赋值,而另一些则不能。表 4.5 展示了这些情况。

表4.5 变量类型
image-20231015150901960 image-20231015150917842

4.9.2 多变量声明(*)

4.9.3 使用变量的值(*)

4.10 静态类型和 dynamic 关键字

  • 静态类型:变量的类型在编译的时候确定并且不可更改
  • dynamic:动态类型,不会被编译器做类型检查

4.11 可空类型(*)

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

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

相关文章

【LeetCode】每日一题两数之和寻找正序数组的中位数找出字符串中第一个匹配项的下标在排序数组中查找元素的第一个和最后一个位置

主页点击直达:个人主页 我的小仓库:代码仓库 C语言偷着笑:C语言专栏 数据结构挨打小记:初阶数据结构专栏 Linux被操作记:Linux专栏 LeetCode刷题掉发记:LeetCode刷题 算法:算法专栏 C头…

iCloud涨价不用慌!学会使用群晖生态将本地SSD“上云”

文章目录 前言本教程解决的问题是:按照本教程方法操作后,达到的效果是想使用群晖生态软件,就必须要在服务端安装群晖系统,具体如何安装群晖虚拟机请参考: 1. 安装并配置synology drive1.1 安装群辉drive套件1.2 在局域…

【node】nodemailer配置163、qq等邮件服务指南

上一章 【node】发送邮件及附件简要使用说明 邮箱配置 参数配置参考如下: let transporter nodemailer.createTransport({host: smtp.qq.com,port: 465,secure: true,auth: {user: **********,pass: your-password} });邮箱服务提供商的要求,配置SM…

Python数据挖掘:入门、进阶与实用案例分析——自动售货机销售数据分析与应用

文章目录 摘要01 案例背景02 分析目标03 分析过程04 数据预处理1. 清洗数据1.1 合并订单表并处理缺失值1.2 增加“市”属性1.3 处理订单表中的“商品详情”属性1.4 处理“总金额(元)”属性 2.属性选择3.属性规约 05 销售数据可视化分析1.销售额和自动售货…

Linux 文件系统逻辑结构图的解释

task_struct进程结构体,表示一个运行的进程。 task_struct中的fs指向fs_struct结构体。fs_struct表示这个进程支持的文件系统。 root指向根目录dentry,dentry中的d_inode指向改进程根目录在存储设备中的inode节点。 pwd指向当前进程所在的目录结构体den…

深入理解Java线程

1. 线程基础知识 1.1 线程和进程 进程:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的 基本单位。线程:线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个 线程共享进程的资源 1…

对地址解析协议ARP进一步探讨

之前在讨论MAC地址和IP地址时,顺便对ARP协议做了初步的总结 (计网第三章(数据链路层)(四)(MAC地址和IP地址、ARP协议、集线器和交换机)),但是当时对ARP请求的…

数据库实验一:学生信息管理系统数据库结构搭建和表的创建

实验项目名称:学生信息管理系统数据库结构搭建和表的创建 实验目的与要求实验原理与内容1. 数据库的组织结构2. 数据库的分离和附加3. 数据库表的创建,修改和删除 实验过程与结果1. 根据学生信息管理系统创建相关的数据库2. 数据库表初步设计及实现3. 实…

构建高效问题解答平台:使用Cpolar和Tipas在Ubuntu上搭建专属问答网站

文章目录 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3 Cpolar稳定隧道(本地设置) 4. 公网访问测试5. 结语 前…

kafka安装

win10 来源:https://blog.csdn.net/tianmanchn/article/details/78943147 进入:http://kafka.apache.org/downloads.html点击Scala 2.12 - kafka_2.12-2.1.0.tgz点击http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz下载后解压缩 😄:\…

微信小程序使用阿里巴巴iconfont,报错Failed to load font http://at.alicdn.com/t/..........

介绍 上篇文章,介绍了,在微信小程序里导入并使用阿里巴巴iconfont图标;但是在页面里使用后,可以看到后台日志有打印错误信息,具体报错如下: 分析 报这个错,是因为项目里使用了 iconfont字体…

主机jvisualvm连接到tomcat服务器查看jvm状态

​使用JMX方式连接到tomcat,连接后能够查看前边的部分内容,但是不能查看Visual GC,显示不受此JVM支持, 对了,要显示Visual GC,首先要安装visualvm工具,具体安装方式就是根据自己的jdk版本下载…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 之前讲到了流程保存的时候还要看是否是自定义业务流程应用类型,若是保存的时候不再检查是否有关…

AWS香港Web3方案日,防御云安全实践案例受关注

9月26日,AWS合作伙伴之Web3解决方案日在香港举办。来自人工智能、Web3等领域的创业公司、技术专家、风险投资商,就元宇宙时代未来发展进行了深入交流。现场展示了顶象防御云在金融与Web3领域的安全实践案例。 Web3为互联网体系架构的一个整体演进和升级&…

SpringBoot配置输出的日志文件

SpringBoot配置输出的日志文件 1、无需导入依赖,因为我们创建springboot时,导入的关于springboot的依赖中已经包含了。 2、我们在项目的resources 资源文件下创建logback.xml文件,文件内容如下 作用: 如果是开发时启动的项目&a…

【Apollo】感知工程安装测试

安装基础软件 安装Linux - Ubuntu 安装 Ubuntu 操作系统,请参见官方安装指南。 注意:推荐您使用 Ubuntu 18.04.5 或以上的版本作为您主机的操作系统,若采用18.04版本可使用:Ubuntu 18.04.5 LTS (Bionic Beaver) Ubuntu系统安装完…

Android Handler/Looper视角看UI线程的原理

概述 Handler/Looper机制是android系统非重要且基础的机制,即使在rtos或者linux操作系统上开发应用框架时,也经常借鉴这个机制。通过该机制机制可以让一个线程循环处理事件,事件处理逻辑即在Handler的handleMessge种。本文建议android8.1源码…

【22】c++设计模式——>外观模式

外观模式定义 为复杂系统提供一个简化接口&#xff0c;它通过创建一个高层接口(外观)&#xff0c;将多个子系统的复杂操作封装起来&#xff0c;以便客户端更容易使用。 简单实现 #include<iostream>// 子系统类 class SubsystemA { public:void operationA() {std::co…

保姆式教程:MAC安装Android studio(包括安装JDK,Android SDK),解决gradle下载慢的问题

文章目录 参考文章安装JDK并配置环境变量安装JDK配置JDK相关的环境变量 Android studio 安装下载Android studiogradle下载慢解决方法 安装Android SDK选择jdk版本安装SDK并配置环境变量 参考文章 原文链接 原文链接 安装JDK并配置环境变量 安装JDK 下载地址 下载后双击安装…

Docker开启远程访问+idea配置docker+dockerfile发布java项目

一、docker开启远程访问 1.编辑docker服务文件 vim /usr/lib/systemd/system/docker.servicedocker.service原文件如下&#xff1a; [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target docker.socke…