当前位置: 首页 > article >正文

C# 数据类型相关

分类

按照数据复杂程度

按照数据存储


 

类型转换

隐式转换

隐式转换无法完成由精度高的数据类型向精度低的数据类型转换

显式转换

又称为强制类型转换,显示转换不一定总是成功,且转换过程中可能出现数据丢失

 int num = 666;float result = (float)num;

Parse

一般用来(字符串)=>(数字)

可以将特定格式的字符串转换成指定类型的数据,一般用来转换成数值

如果字符串的格式无效,转换失败,Parse会引发异常

int.Parse(str);try
{char.Parse(str);
}
catch (Exception ex) 
{ Console.WriteLine("转换格式失败!");
}

TryParse

一般用来(字符串)=>(数字)

类似Parse方法,转换成功返回true,并以out参数的形式返回转换后的数字;转换失败返回false,不会引发异常。

  Console.WriteLine($"{int.TryParse(str, out int value)} {value}");Console.WriteLine($"{char.TryParse(str, out char valueStr)} {valueStr}");

Convert

一般用来(字符串)=>(数字)

如果字符串的格式无效,转换失败,Parse会引发异常.在其内部调用的是Parse方法

下表列出了 Convert 类中可用于将字符串转换为数字的一些方法。

数值类型

方法

decimal

ToDecimal(String)

float

ToSingle(String)

double

ToDouble(String)

short

ToInt16(String)

int

ToInt32(String)

long

ToInt64(String)

ushort

ToUInt16(String)

uint

ToUInt32(String)

ulong

ToUInt64(String)

  Convert.ToInt32(str);try{Convert.ToChar(str);}catch(Exception ex) {Console.WriteLine("转换格式失败!");}

ToString

一般用来(数字)=>(字符串)

也可用来实现保留小数点后几位的功能

is和as

is

用来判断对象是否和指定类型兼容

如果兼容返回true;不兼容返回false,通常is会使用在if语句中

Apple apple = new Apple();//子类
Fruit fruit = new Fruit();//父类  if (apple is Fruit)
{Console.WriteLine("兼容");
}
else
{Console.WriteLine("不兼容");
}

as

在判断兼容性的同时,进行类型转换

如果兼容的,则返回类型转换后的对象,如果不兼容则返回null

Apple apple = new Apple();//子类
Fruit fruit = new Fruit();//父类  
var obj = apple as Fruit;
Console.WriteLine(obj == null);

子类可以兼容父类(子类可以替代父类)

父类不可以兼容子类(父类不能替代子类)

值类型补充

整数类型

类型

描述

范围

默认值

sbyte

一个字节的有符号整数

-128 到 127

0

byte

一个字节的无符号整数

0 到 255

0

short

两个字节的有符号整数

-32,768 到 32,767

0

ushort

两个字节的无符号整数

0 到 65,535

0

int

四个字节的有符号整数

-2,147,483,648 到 2,147,483,647

0

uint

四个字节的无符号整数

0 到 4,294,967,295

0

long

八个字节的有符号整数

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

0L

ulong

八个字节的无符号整数

0 到 18,446,744,073,709,551,615

0

实数类型

包括浮点型和小数型,小数型取值范围比浮点型小,但精度更高

类型

描述

范围

默认值

float

32 位单精度浮点型 ,占用4个字节

-3.4 x 1038 到 + 3.4 x 1038

0.0F

double

64 位双精度浮点型,占用8个字节

(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308

0.0D

decimal

128 位精确的十进制值,28-29 有效位数,更高精度,占用12个字节

(-7.9 x 1028 到 7.9 x 1028) / 100 到 28

0.0M

引用类型补充

 引用类型还包含集合

其他

如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。

sizeof(int)

相关文章:

C# 数据类型相关

分类 按照数据复杂程度 按照数据存储 类型转换 隐式转换 隐式转换无法完成由精度高的数据类型向精度低的数据类型转换 显式转换 又称为强制类型转换,显示转换不一定总是成功,且转换过程中可能出现数据丢失 int num 666;float result (float)num; …...

Python Web应用开发之Flask框架——基础

一、前言 在即将开启的 Flask 学习之旅中,为了能够顺利掌握并运用 Flask 进行 Web 开发,您需要具备一定的基础知识,同时了解相应的运行环境。 需要你具备的知识:Python 编程语言、HTML、CSS、HTTP协议、数据库(如:MySQL、MongoDB) 本文所使用的环境:操作系统Windows…...

分析白屏winscope

在 Android 设备上,播放视频时锁屏后解锁出现闪白屏的问题,通常与 Surface 生命周期、视频渲染或 UI 刷新机制有关。要定位和解决这个问题,可以按照以下步骤进行分析,并利用 WinScop 工具(如果适用)来辅助调…...

使用Word时无法粘贴,弹出错误提示:运行时错误‘53‘:文件未找到:MathPage.WLL

报错说明 使用Word时无法粘贴,粘贴时弹出提示如下: 一般出现这种情况时,我想你是刚装完MathType不久,博主装的是MathType7版本,出现了这个问题。 出现这个问题的原因是"mathpage.wll"这个文件在Office的插…...

玩转python: 深度解析Python高阶函数及推导式

1 高阶函数:工程化编程的基石 1.1 高阶函数基础概念 高阶函数(Higher-Order Function)是函数式编程范式的核心要素,指能够接受函数作为参数或返回函数作为结果的函数。在Python中,这类函数构成了数据处理的基础架构&…...

DeepSeek vs Grok vs ChatGPT:大模型三强争霸,谁将引领AI未来?

DeepSeek vs. Grok vs. ChatGPT:大模型三强争霸,谁将引领AI未来? 在人工智能领域,生成式模型的竞争已进入白热化阶段。DeepSeek、Grok和ChatGPT作为三大代表性工具,凭借独特的技术路径和应用优势,正在重塑…...

VSCode详细安装步骤,适用于 Windows/macOS/Linux 系统

以下是 Visual Studio Code (VSCode) 的详细安装步骤,适用于 Windows/macOS/Linux 系统: VSCode 的详细安装步骤 一、Windows 系统安装1. 下载安装包2. 运行安装程序3. 验证安装 二、macOS 系统安装1. 方法一:官网下载安装包2. 方法二&#x…...

Linux第五讲----gcc与g++,makefile/make

1.代码编译 1.1预处理 我们通过vim编辑完文件之后,想看一下运行结果这时我们便可以试用gcc编译C语言,g编译c. 编译代码: 上述两种方法均可,code.c是我的c语言文件,mycode是我给编译后产生的二进制文件起的名&#x…...

ubuntu22.04下Meshlab打开obj文件闪退——使用Appimage并放入收藏夹中

文章目录 ubuntu22.04下Meshlab打开obj文件闪退,查了下是meshlab的apt没做好。 官网下载:https://www.meshlab.net/#download 赋予权限 sudo chmod a+x MeshLab2023.12-linux.AppImage 双击运行即可 打开权限——下面操作是放在桌面上的 创建桌面快捷方式 # 在 ~/desktop (…...

MAVEN的环境配置

在下载好maven后或解压maven安装包后进行环境配置 1.在用户环境变量中 新建一个MAVEN_HOME 地址为MAVEN目录 注:地址为解压后maven文件的根目录!!! 2.在系统环境变量的path中添加该变量 %MAVEN_HOME%\bin 3. 测试maven安装是否成…...

强化学习无痛上手笔记第1课

文章目录 Markov Decision ProcessDefinitionRelated Concepts Policy for MDP AgentDefinitionJudgement for PolicyValue FunctionsTD formula for value functionsRelation of V and QPolicy CriterionPolicy Improvement TheoremOptimal PolicyReinforcement Learning Fund…...

智能设备上的 AI 移植与部署:新趋势与实践案例

1. 引言:智能设备如何运行 AI? 随着人工智能(AI)技术的快速发展,AI 计算已经从云端走向边缘,嵌入到智能设备中,如智能手机、智能摄像头、机器人、自动驾驶汽车等。这种本地化 AI 计算能够减少延…...

【USRP】NVIDIA Sionna:用于 6G 物理层研究的开源库

目录 Sionna:用于 6G 物理层研究的开源库主要特点实现6G研究的民主化支持 5G、6G 等模块化、可扩展、可伸缩快速启动您的研究 好处原生人工智能支持综合研究平台开放生态系统 安装笔记使用 pip 安装基于Docker的安装从源代码安装“你好世界!”探索锡奥纳…...

LLM大型语言模型(一)

1. 什么是 LLM? LLM(大型语言模型)是一种神经网络,专门用于理解、生成并对人类文本作出响应。这些模型是深度神经网络,通常训练于海量文本数据上,有时甚至覆盖了整个互联网的公开文本。 LLM 中的 “大” …...

BUU44 [BJDCTF2020]ZJCTF,不过如此1 [php://filter][正则表达式get输入数据][捕获组反向引用][php中单双引号]

题目: 我仿佛见到了一位故人。。。也难怪,题目就是ZJCTF 按要求提交/?textdata://,I have a dream&filenext.php后: ......不太行,好像得用filephp://filter/convert.base64-encode/resourcenext.php 耶?那 f…...

软考中级-数据库-3.3 数据结构-树

定义:树是n(n>=0)个结点的有限集合。当n=0时称为空树。在任一非空树中,有且仅有一个称为根的结点:其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3...,Tm…,其中每个集合又都是一棵树,并且称为根结点的子树。 树的相关概念 1、双亲、孩子和兄弟: 2、结点的度:一个结…...

磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)

背景: 最近往数据库里存的东西有点多,磁盘不够用 查看磁盘使用情况 df -h /dev/sda5(根目录 /) 已使用 92% 咱们来开源节流 目录 背景: 一、开源 二、节流 1.查找 大于 500MB 的文件: 1. Snap 缓存…...

SpringCloud系列教程(十二):网关配置动态路由

除了token以外,还有一个很实用的功能就是把网关的路由配置放到nacos上,并且修改路由配置的时候,网关服务可以动态的更新,这样我们在调整网络配置的时候,就不用重启服务了。所以我们需要用到两个重要的类:Na…...

Java-实现PDF合同模板填写内容并导出PDF文件

可用于公司用户合同导出pdf文件 效果图 一、导入所需要jar包 <!--生成PDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency><dependency&…...

基于STM32的环境监测系统(自制蓝牙APP)

目录 项目概述 实物图 演示视频 概述 硬件模块 原理图以及PCB 0.96寸OLED屏幕&#xff08;SSD1306&#xff09; CubeMX配置 初始化代码 MQ-2烟雾传感器 CubeMX配置 初始化代码 DHT11温湿度模块 驱动代码 HC-05蓝牙模块 CubeMX配置 ​编辑 空闲中断回调函数 有…...

C++ Windows下屏幕截图

屏幕截图核心代码&#xff08;如果要求高帧率&#xff0c;请使用DxGI&#xff09;&#xff1a; // RGB到YUV的转换公式 #define RGB_TO_Y(r, g, b) ((int)((0.299 * (r)) (0.587 * (g)) (0.114 * (b)))) #define RGB_TO_U(r, g, b) ((int)((-0.169 * (r)) - (0.331 * (g)) …...

月结保障:回滚慢、行锁频发

问题背景 3.1号月结现场保障&#xff0c;到场了先让kill了一个账务的会话&#xff0c;回滚了20min&#xff0c;巡检的时候发现报表库有几条行锁&#xff1a;enq: TX - row lock contention&#xff0c;sql&#xff1a;delete from table_name 语句已经失败&#xff0c;正在回滚…...

Golang的微服务服务发现机制

## 1. Golang微服务服务发现机制 微服务架构已经成为当今软件开发的主流趋势&#xff0c;它能将复杂的单体应用拆分成小而独立的服务单元&#xff0c;实现更快的开发、部署和扩展。在微服务架构中&#xff0c;服务发现是非常重要的一环&#xff0c;它能够实现服务之间的自动发现…...

Keepalived 入门详解:高可用集群部署最佳实践!

1. 什么是 Keepalived&#xff1f; 在分布式集群中&#xff0c;单点故障&#xff08;SPOF&#xff09; 是影响系统稳定性的重要问题。Keepalived 作为一款高可用服务软件&#xff0c;可以有效防止集群单点故障&#xff0c;保障系统的高可用性。 Keepalived 最初是为 LVS&#…...

SparkStreaming之04:调优

SparkStreaming调优 一 、要点 4.1 SparkStreaming运行原理 深入理解 4.2 调优策略 4.2.1 调整BlockReceiver的数量 案例演示&#xff1a; object MultiReceiverNetworkWordCount {def main(args: Array[String]) {val sparkConf new SparkConf().setAppName("Networ…...

开发博客系统

前言 准备工作 数据库表分为实体表和关系表 第一&#xff0c;建数据库表 然后导入前端页面 创建公共模块 就是统一返回值&#xff0c;异常那些东西 自己造一个自定义异常 普通类 mapper 获取全部博客 我们只需要返回id&#xff0c;title&#xff0c;content&#xff0c;us…...

微信小程序上如何使用图形验证码

1、php服务器生成图片验证码的代码片段如下&#xff1a; 注意红框部分的代码&#xff0c;生成的是ArrayBuffer类型的二进制图片 2、显示验证码 显示验证码&#xff0c;不要直接image组件加上src显示&#xff0c;那样拿不到cookie&#xff0c;没有办法做图形验证码的验证&…...

IntelliJ IDEA 构建项目时内存溢出问题

问题现象 在使用 IntelliJ IDEA 构建 Java 项目时&#xff0c;遇到了以下错误&#xff1a; java: java.lang.OutOfMemoryError: Java heap space java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space这是一个典型的 Java 堆内存不足错误&#xff0c;表…...

大模型微调与RAG检索增强技术深度解析

一、引言 随着人工智能技术的飞速发展&#xff0c;大模型&#xff08;如BERT、GPT等&#xff09;在自然语言处理、计算机视觉等领域取得了显著成效。然而&#xff0c;这些预训练好的大模型往往难以直接应用于特定业务场景&#xff0c;因此&#xff0c;大模型微调&#xff08;F…...

[liorf_localization_imuPreintegration-2] process has died

使用liorf&#xff0c;编译没报错&#xff0c;但是roslaunch报错如下&#xff1a; 解决方法&#xff1a; step1: 如果你之前没有安装 GTSAM&#xff0c;可以尝试安装它 step2: 检查是否缺少依赖库 ldd /home/zz/1210/devel/lib/liorf_localization/liorf_localization_imuPr…...