C# Nullable学习

news2024/11/27 0:28:07

在C#1.x,一个值类型变量是不可以被赋予null值的,否则会产生异常。

在C#2.0中,提供了Nullable类型,允许用它定义包含null值(即空值)的数据类型,这对处理数据库中包含可选字段以及很多方面都有帮助。

定义一个nullable类型,使用类型修饰符“?”;

比如定义一个整型如下:

int myInt = 1;

要使一个整型变量可以存储一个null值,可以如下声明:

int? myNullableInt= 1;

    这两个变量看起来似乎是一样的。但事实并非如此。实际上Nullable类型是一个结构体,它有两个公开可读字段:HasValue和Value。 HasValue是一个布尔值,当有值存储时它为真,当变量值为null时HasValue为假。当HavValue为真是时,可以取得变量的值;为假时,当尝试取得变量的值时会抛出一个异常。

看一下示例;

using System;

    class Demo
    {
        static void Main(string[] args){
            int? num1;
            int? num2 = 123;
            num1 = null;
        
            double? num3 = null;
            double? num4 = 3.1415926;

            Console.WriteLine("num1 = {0} \r\n num2 = {1} \r\n num3 = {2} \r\n num4 = {3}", num1, num2, num3, num4);
            Console.ReadLine();
        }
    }


 

 

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

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

相关文章

【云原生】Docker网络Overlay搭建Consul实现跨主机通信

目录 1.overlay网络是什么? 实现overlay环境 1.overlay网络是什么? 在Docker中,Overlay网络是一种容器网络驱动程序,它允许在多个Docker主机上创建一个虚拟网络,使得容器可以通过这个网络相互通信。 Overlay网络使用…

linux - bc 命令安装

一.引言 迁移新机器后发现没有 bc 命令,之前 shell 脚本的一些计算逻辑会出错,下面快速安装一下。 二.安装 bc 请确保在 root 权限下执行该命令: sudo yum install bc 出现下述界面即安装成功: 三.测试 bc 测试下脚本里 % 的…

Nautilus Chain 更换全新测试网,主网即将在不久上线

目前,Nautilus Chain 正在为主网上线前的最后阶段做准备,据悉该链更新了全新的测试网,在此前版本的测试网的基础上进行了全新的技术升级,最新测试网版本与生态发展的技术规划更为贴近。本次测试网升级将会是最后一次测试网版本的迭…

ylb-接口8手机号注册

总览: 在web模块下的service包,补充短信接口(SmsService):检查用户发送的验证码是否正确 package com.bjpowernode.front.service;public interface SmsService {/*** param phone 手机号* return true:发…

聚集十二罗汉,探索宇宙本质,马斯克神秘的xAI

作者 | 德新编辑 | 王博 马斯克组团入局通用人工智能。 7月12日,马斯克发推官宣成立新的公司xAI。据官网介绍,这是一家试图「探索理解宇宙本质」的公司。 新公司公布了12名首批成员,除了马斯克外,他们曾经在「AlphaStar、AlphaCod…

springboot线上买菜系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…

【Linux进阶之路】冯诺依曼体系结构与操作系统

前言 存储器与CPU 在正式介绍今天的话题之前,博主先来带大家搞清楚一些硬件的概念,方便接下来的理解。 存储器,顾名思义就是用来存储的设备,那在计算机里,存储器包含什么呢? 答:内存 外存&a…

【C语言初阶(14)】扫雷游戏(优化:标记地雷+自动展开)

文章目录 Ⅰ游戏规则Ⅱ 游戏实现思路Ⅲ 游戏实现步骤⒈菜单界面⒉创建棋盘① 创建两个棋盘② 防止数组越界 ⒊棋盘初始化⒋棋盘的打印⒌布置地雷⒍玩家排查雷实现步骤⒎计算 x,y 周围有多少雷⒏展开非雷区⒐标记地雷⒑取消标记 Ⅳ 模块化代码实现⒈test.c⒉game.h⒊…

TCP协议下的三大协议的验证实验

系列文章目录 数通王国历险记(1) 前言 一,我们要先知道PDU是什么? 二、TCP协议下的三大协议的验证实验 1.FTP的验证实验 1,拓扑图 2.将lsw4配置一下 3,FTP服务器端开启FTP服务: 4&#x…

Jenkins的几种安装方式以及邮件配置

目录 Jenkins介绍 Jenkins下载、安装 一、通过war包安装 二、通过docker安装 jenkins 容器中添加 git, maven 等组件 jenkins 容器中的公钥私钥 在 jenkins 容器中调用 docker 简单的方式启动 Docker server REST API 一个 jenkins 示例 三、通过Homebrew安装 访问Je…

静态库 的制作与使用

文章目录 重要命令程序组成静态库制作流程静态库的使用 gcc main.c -o APP -I(i) 头文件路径 -l(L) 库名字(xxx) -L 库路径 重要命令 gcc -o -I(大写i) -l(小写L) -L cp:复制文件 -r 递归,用于复制文件夹所有文件 mv:移动文件 程…

代码随想录算法训练营第53天 | 动态规划 part14 ● 1143.最长公共子序列 ●1035.不相交的线 ● 53. 最大子序和

# 1143.最长公共子序列 和718最长公共子数组 对比 本题可以不连续 int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<int>(text2.size() 1, 0));for (int i 1; i < text1.size(); i) {for…

陆地生态系统植被净初级生产力(NPP)—CASA模型

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放&#xff08;碳源&#xff09;和碳固定&#xff08;碳汇&#xff09;这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作…

Swagger、knife4j简介

Swagger 简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(API Documentation & Design Tools for Teams | Swagger)。 它的主要作用是&#xff1a; 使得前后端分离开发更加方便&#xff0c;有利于团队协作 接口的…

leetcode 1218. Longest Arithmetic Subsequence of Given Difference(给定差值的最长算术子序列)

给数组arr和一个差值difference, 不打乱arr中数字的顺序&#xff0c;抽取最长的子序列&#xff0c;使序列中每相邻两个元素的差值为difference. 求满足条件的最长子序列的长度。 思路&#xff1a; DP 因为差值difference是固定的&#xff0c;每抽取一个元素&#xff0c;它前…

帆软报表分页预览如何增加一种新的导出类型。

如图,这里要在 导出下拉菜单中新增一个签章PDF的导出。 通过分析源码,发现这个菜单的定义是再报表预览加载的html页面里面 咋们如何再这里面插入我们新加的菜单项呢。 首先该页面的内容是通过MemXPageActor的flushHtml方法产生的。所以我们需要继承MemXPageActor来重载flus…

ios h5底部安全区适配

相信在ios 移动端开发h5前端童鞋 肯定会知道 就是 很多ios款型的手机 底部有一条黑色的杠杠 或者白色哎 就是会遮挡一部分我们的元素 特别是底部需要悬浮一些按钮的时候 这个就是ios的底部安全区域 对应的还有顶部的哈 这里就说下 底部的 <meta name"viewport"…

在Linux中使用curl访问EasyCVR页面,返回报错Unauthorized是什么原因?

EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&#xff0c;比如&#xff1a;视…

第四章 数学知识(四)——容斥原理与博弈论

文章目录 容斥原理博弈论SG函数 容斥原理练习题890. 能被整除的数 博弈论练习题891. Nim游戏893. 集合-Nim游戏892. 台阶-Nim游戏894. 拆分-Nim游戏 容斥原理 若干个相交集合&#xff0c;它们的并集中存在多少个元素&#xff1f; 假设n为所有集合的元素个数相加&#xff0c;因…

vue img 图片损坏时展示替图片

场景&#xff1a;图片地址找不到时&#xff0c;会展示如图一&#xff1b;虽然没什么大影响&#xff0c;但是有点丑&#xff0c;需求是想在图片损坏时展示替补图片&#xff0c;如图二。 代码实现&#xff1a;给img标签加error事件 <img :src"item.imageUrl" :alt&q…