C#面试常考随笔4:int? 和 int的区别,以及int?的运用场景?

ops/2025/2/3 4:09:43/

可空性

int?:它是int的可空类型,允许将null赋值给该变量。int?实际上是Nullable<int>的缩写形式,是一个可以为null的整数类型。例如:int? num2 = null;或者int? num3 = 10;都是合法的。

内存分配与存储

int?:本质上是一个包含HasValue属性和Value属性的结构体。当值为null时,HasValuefalseValue属性无意义;当有具体值时,HasValuetrueValue存储具体的整数值。它在内存中所占空间通常比int要大一些,因为需要额外的空间来存储HasValue这个标志位。

运算和操作

int?:在进行运算时,如果其中一个操作数为null,则结果通常也为null。例如,int? a = 5; int? b = null; int? c = a + b;,此时c的值为null。需要注意的是,可空类型在进行一些操作时可能需要额外的处理,以避免出现null引用异常。

比较操作

int?:在比较时,如果两个int?类型的变量中有一个为null,则比较结果通常为false(除了==比较运算符在两个操作数都为null时返回true)。

例如:

int? a = 5;

int? b = null;

bool result1 = a > b; // false

bool result2 = a == b; // false

int? c = null;

int? d = null;

bool result3 = c == d; // true

适用场景

int?:当数据可能存在缺失或未知的情况时,使用int?。比如从数据库中读取可能为null的整数字段,或者在某些业务逻辑中,某个整数值可能在某些情况下没有赋值。例如,在数据库中,如果一个字段允许为null,在 C# 中读取该字段的值时,就可以使用int?类型来接收。


http://www.ppmy.cn/ops/155215.html

相关文章

4. 劲舞团python解法——2024年省赛蓝桥杯真题

问题描述&#xff1a;4.劲舞团 - 蓝桥云课 小蓝最近迷上了一款名为 “劲舞团” 的游戏&#xff0c;具体来说&#xff0c;只要按照游戏中给出的键位提示依次按出对应的键位&#xff0c;游戏人物便可以跟随节奏跳舞。对于连续的 K 次正确敲击&#xff0c;如果任意连续的两次敲击…

Linux《基础指令》

在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境&#xff0c;那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分&#xff0c;即指令和关于Linux的基础知识&#xff1b;因此本篇指令和基础知识的…

Python学习之旅:进阶阶段(五)数据结构-双端队列(collections.deque)

在 Python 的进阶学习过程中,数据结构的掌握至关重要。今天要介绍的双端队列(deque,即 double-ended queue),是一种非常实用的数据结构,Python 的collections模块中的deque类为我们提供了强大的双端队列操作功能。接下来,就一起深入了解双端队列吧。 一、什么是双端队列…

Brave132 编译指南 Windows 篇:部署 Node.js(五)

1. 引言 在 Brave 浏览器 132 版本的编译过程中&#xff0c;Node.js 扮演着至关重要的角色。作为一个基于 Chrome V8 引擎构建的 JavaScript 运行时环境&#xff0c;Node.js 赋予了开发者在服务器端执行 JavaScript 代码的能力。其非阻塞、事件驱动的架构使其特别擅长构建高性…

DeepSeek文生图模型Janus-Pro论文解读 —— 多模态AI的革命?

介绍 整个AI行业仍在适应最近发布的、震惊人工智能领域的 DeepSeek-R1。1月28日除夕当天的凌晨&#xff0c;DeepSeek 又发布了另一款出色的开源模型 Janus-Pro。这一次&#xff0c;它是一款能与其他顶级多模态模型相媲美的多模态人工智能模型。 在本文中&#xff0c;我们将解…

JavaScript的基本组成

1、JavaScript的组成部分 JavaScript可以分为三个部分&#xff1a;ECMAScript标准、DOM、BOM。 ECMAScript标准 即JS的基本语法&#xff0c;JavaScript的核心&#xff0c;描述了语言的基本语法和数据类型&#xff0c;ECMAScript是一套标 准&#xff0c;定义了一种语言…

Nginx前端后端共用一个域名如何配置

在 Nginx 中配置前端和后端共用一个域名的情况&#xff0c;通常是通过路径或子路径将请求转发到不同的服务。以下是一个示例配置&#xff0c;假设&#xff1a; 前端静态文件在 /var/www/frontend/。 后端 API 服务运行在 http://127.0.0.1:5000。 域名是 example.com&#xff…

本地搭建deepseek-r1

一、下载ollama(官网下载比较慢&#xff0c;可以找个网盘资源下) 二、安装ollama 三、打开cmd&#xff0c;拉取模型deepseek-r1:14b(根据显存大小选择模型大小&#xff09; ollama pull deepseek-r1:14b 四、运行模型 ollama run deepseek-r1:14b 五、使用网页api访问&#x…