首页 > 编程语言 >C# 数据类型

C# 数据类型

时间:2025-01-12 12:33:00浏览次数:1  
标签:存储 Console C# 数据类型 引用 WriteLine 类型 默认值

C# 数据类型主要有三大类型:值类型、引用类型、指针类型

  1. 值类型

值类型是从 System.ValueType 派生出来的,可以直接为其分配一个具体的值。
当声明一个值类型变量时,系统会自动分配一块内存区域来存储这个变量的值。
值类型包括如下几种:

  • 整型类型:
  • [sbyte]:8位有符号整数,范围从-128~127
  • [byte]:8位无符号整数,范围从0~255
  • [short]:16位有符号整数,范围从-32768~32767
  • [ushort]:16位无符号整数,范围从0~65535
  • [int]:32位有符号整数,范围从-2147483648~2147483647
  • [uint]:32位无符号整数,范围从0~4294967295
  • [long]:64位有符号整数,范围从-9223372036854775808~9223372036854775807
  • [ulong]:64位无符号整数,范围从0~18446744073709551615
点击查看代码 sbyte sb = 10; byte b = 20; short s = 30; ushort us = 40; int i = 50; uint ui = 60u; long l = 70L; ulong ul = 80ul;

Console.WriteLine(sb);
Console.WriteLine(b);
Console.WriteLine(s);
Console.WriteLine(us);
Console.WriteLine(i);
Console.WriteLine(ui);
Console.WriteLine(l);
Console.WriteLine(ul);

  • 浮点类型:
  • [float]:32位单精度浮点数,占用4个字节,可以表示大约7位有效数字的精度。
    它适用于对内存要求严格且精度要求不是特别高得场景,如游戏中表示物体的位置
    定义方式:float myFloat = 3.14f; //需要在数字后面加上 f 或 F 后缀。

  • [double]:64位双精度浮点数,占用8个字节,可以表示大约15~16位有效数字。
    它具有更高的精度,是C#中的默认浮点类型,应用于大多数小数计算场景,如金融计算或科学研究
    定义方式:double myDouble = 3.1415926535; //不需要添加后缀。

  • [decimal]:128位精确的十进制数,占用16个字节,可以表示高达28~29位有效数字。
    专门为高精度需求设计, 它适用于财务和货币计算,确保每一个小数的精度
    定义方式:decimal myDecimal = 1.0m; //需要在数字后面添加 m 或 M 后缀。

  • 布尔类型:
  • [bool]:它表示布尔值,只有两种可能的值:True 和 False。
    用于表示条件判断的结果,如if语句、循环控制语句、比较语句中
    定义方式:bool isTrue = True; bool isFalse = false;

bool类型值得默认值和初始化:
在C#中,布尔类型得默认值为false。如:
bool b; //默认值为 false
bool?b; //默认值为 null

  • 字符类型:
  • [chart]:16位用于表示单个字符,占用2个字节,用于存储Unicode字符
    用于处理文本时区分不同的字符
    定义方式:char c = "A";
  1. 引用类型

应用类型(Reference types)不直接存储数据值,而是存储对数据的引用
引用类型包括如下几种:

  • 对象类型:Object,是所有数据类型的基类。

  • 动态类型:Dynamic,在运行时进行类型检查。

  • 字符串类型:String,用于存储文本数据,字符串一旦初始化就不可变的,可以通过StringBuilder类进行修改。每次修改都会创建一个新的字符串对象。可以通过双引号 “” 或逐字字符串标记 @“” 类创建。

  • 类(Class):用户自定义的引用类型,类是面向对象编程的基本单位,包含数据成员和函数成员。

  • 接口(Interface):定义了一组方法和属性的规范,用于定义类的行为。它不能直接实例化,必须通过类来实现。

  • 委托(Delegate):可以持有对方法的引用,用于定义回调方法。委托是一种类型,它定义了方法的签名,并可以持有对方法的引用。

  • 数组(Array):数组元素可以是值类型,但是数组本身是引用类型。数组的元素是存储在托管堆上,数组变量存储的是数组元素的内存地址。

引用类型的特性:

  • 存储位置:数据存储在托管堆上,变量存储的是数据的内存地址;
  • 内存分配:在堆上动态分配内存,大小不固定,可以在运行时确定;
  • 默认值:引用类型默认值是null,表示没有引用任何对象;
  • 内存回收:由垃圾回收器管理,当没有变量引用该对象时,垃圾回收器可能会回收其内存;
  • 赋值:赋值会复制对象的引用,而不是对象本身。两个变量可能引用同一个对象;
  • 方法和属性:可以拥有方法和属性,因为它们通常代表更复杂的数据结构;
  1. 指针类型

指针类型(Pointer types)用于存储内存地址,允许直接访问内存。
在C#中,指针的使用相对受限,主要用于底层编程与硬件交互的场景。

标签:存储,Console,C#,数据类型,引用,WriteLine,类型,默认值
From: https://www.cnblogs.com/tdreamtec/p/18666803

相关文章

  • PCIe TLP路由分为几类?都有什么作用
    PCIeTLP(事务层数据包)路由主要分为以下几类及其作用:1.基于地址的路由(Address-BasedRouting)作用:用于MemoryRead/Write和I/ORead/Write等事务,TLP头中包含目标地址,交换机根据该地址将TLP转发到正确的设备。2.基于ID的路由(ID-BasedRouting)作用:用于配置Read/Write和......
  • 织梦CMS网站修改是否需要权限
    在使用织梦CMS(DedeCMS)进行网站修改时,权限管理是一个重要的安全措施。以下是关于织梦网站修改权限的详细说明和注意事项:权限管理的重要性:权限管理可以确保只有授权用户才能修改网站内容和文件,防止未经授权的访问和修改。通过权限管理,可以减少网站被黑客攻击的风险,保护网站数......
  • 如何在 CentOS 上重启宝塔面板?
     在CentOS系统上重启宝塔面板可以通过两种方法实现:通过宝塔面板界面操作和通过SSH命令行操作。以下是详细的步骤:1.通过宝塔面板界面重启登录宝塔面板:打开浏览器,输入你的服务器域名或IP地址,加上宝塔面板的端口号(默认是8888),例如 http://域名:8888。输入你的用户名......
  • 生信技能69 - 使用deepvariant对基因组指定区域Calling SNPs/Indels
    基于比对排序去除重复后的BAM文件,使用deepvariant进行Calling变异,可指定基因组区域(染色体编号:开始位置-结束位置格式),docker封装,适用于CallingSNPs/Indels及基于VCF的基因分型等,在输出目录生成VCF文件。1.deepvariant分析示例参数1:工作分型的目录(变异VCF文件输出的目录......
  • LeetCode热题100中 35. 46. 70. 73. 118.
    35.搜索插入位置题目描述:实现思路:        这里主要就是二分查找,二分查找要注意对边界值的处理,l是数组的第一位,r是数组的最后一位,l<=r我们就返回l,因为我们的判断是nums[mid]<target 取的是mid的左区间已经不包含mid了,所以是 l=mid+1。代码:var......
  • (即插即用模块-Attention部分) 四十一、(2023) MLCA 混合局部通道注意力
    文章目录1、MixedLocalChannelAttention2、代码实现paper:MixedlocalchannelattentionforobjectdetectionCode:https://github.com/wandahangFY/MLCA1、MixedLocalChannelAttention现有通道注意力机制的局限性:大多数通道注意力机制只关注通道特征信......
  • 为什么设置MSVC cl.exe到PATH路径,依然无法正常编译?为什么MSVC toolchain有多个cl.exe
    为什么设置MSVCcl.exe到PATH路径,依然无法正常编译?MSVC可以正常编译C/C++代码的前提,还包括INCLUDE/LIB路径等都正确配置,而这无法仅仅通过MSVCcl.exe的PATH路径来完成。VS提供了一个官方的配置MSVC环境的方式,可以通过开始菜单的"DeveloperCommandPromptforVS2019......
  • 车道偏离预警(LDW)、车道保持辅助(LKA)、车道线检测-OpenCV、Python-滑动窗口、透视变
    车道偏离预警、车道保持辅助及车道线检测系统引言一、代码和文件1.项目文件说明2.项目的依赖包和环境3.运行代码二、整体代码逻辑1.相机校准2.车道检测/跟踪3.车道状态分析4.车道映射三、相机校准1.计算摄像机矩阵和失真系数四、图像和视频的处理步骤1.进行......
  • 【LeetCode: 240. 搜索二维矩阵 II + 指针 + 遍历】
    ......
  • 国微pcie switch 8748高速存储方案设计
    今天聊聊纯国产高速存储方案怎么设计,主要是针对pcie switch架构做深入分析,switch架构方案的优点是特别灵活,对速率和盘的容量可以任意扩展,并且支持标准ext4文件系统,可以将磁盘取下插入到windows系统上被识别到标准盘符,同样也可以插入到linux系统被识别成标准盘符。下面开始分......