什么是换行转换?

2024-02-27

当您尝试将值从一种类型转换为另一种不兼容的类型时,您会在 C# 中收到以下错误:

CS0039 无法通过引用转换、装箱转换、拆箱转换、包装转换或 null 类型转换将类型 A 转换为 B

我了解如何潜在地解决此问题,但我的问题是关于转换本身的类型。它提到了引用(超类到子类,反之亦然)、装箱和拆箱(值类型到对象)和 null 类型(例如 int 到 int?)转换,但是什么是包装转换?这对我来说并不明显,搜索该术语只会返回有关错误 CS0039 的结果,而不是对该概念的解释。


包装将不可为 null 的值类型转换为其可空的等效类型。展开则相反。例如:

int x = 5;
int? y = x; // Wrapping
int z = (int) y; // Unwrapping

C# 规范实际上并未将这些称为“包装转换”和“展开转换”,但它确实讨论了包装和展开。来自 C# 5 规范的第 4.1.10 节,或在线规格 https://learn.microsoft.com/en-gb/dotnet/csharp/language-reference/language-specification/types#nullable-types(强调我的):

一个实例HasValue为 false 则表示为 null。 null 实例具有未定义的值。尝试阅读Value空实例的结果会导致System.InvalidOperationException被扔掉。访问的过程Value可空实例的属性称为展开。 除了默认构造函数之外,每个可空类型T?有一个公共构造函数,它接受单个类型的参数T。给定一个值x类型的T,表单的构造函数调用

new T?(x)

创建一个非空实例T?为此Value财产是x。为给定值创建可空类型的非空实例的过程称为wrapping.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是换行转换? 的相关文章

  • 无法使用c#更改视频捕获分辨率

    我正在尝试使用 C 中的 DirectShowNet 更改默认网络摄像头分辨率 据我所知 我需要通过调用 windows win32 api dll 中内置的 VideoInfoHeader 类来更改它以进行 avi 捕获 我有来自 Dir
  • 如何通过覆盖 MSBuild 目标来防止外语资源生成?

    我正在致力于减少大型 C ASP NET 解决方案的编译时间 我们的解决方案使用通常的 resx 文件方法翻译成大约十几种外语 这些资源文件的解析和编译极大地减慢了我们的编译时间 并且是日常的挫败感 我知道可以创建自定义资源提供程序并摆脱
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 预编译头和 Visual Studio

    有没有办法设置 Visual Studio 解决方案参数 以便它只创建预编译头而不构建整个解决方案 具体来说 它是一个巨大的 C 解决方案 本身有许多项目 谢谢 仅选择 pch 创建者源文件 通常是 stdafx cpp 然后编译该文件 C
  • 如何从不同的线程访问控件?

    如何从创建控件的线程以外的线程访问控件 避免跨线程错误 这是我的示例代码 private void Form1 Load object sender EventArgs e Thread t new Thread foo t Start p
  • 从内存流播放视频文件

    只是好奇看看这是否可能 我有一个 Windows 应用程序 它从我的电脑上的 avi 文件读取所有字节 然后将其存储在 byte 中 现在我的内存中有 avi 文件 我想直接从内存将其加载到某种视频播放器控件中 我尝试过使用 wmplaye
  • C# 中的抽象类和接口类有什么不同?

    C 中的抽象类和接口类有什么不同 An 接口不是类 它只是一个contract定义了public一个类的成员must实施 抽象类只是一个类 您从中可以cannot创建一个实例 通常您会使用它来定义一个基类 该基类定义了一些virtual方法
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 检查两个函数或成员函数指针的签名是否相等

    我编写了一些代码来检查自由函数的签名是否等于成员函数的签名等 它比较提取的返回类型和函数参数 include
  • 列表到优先队列

    我有一个 C 大学编程项目 分为两个部分 在开始第二部分时应该使用priority queues hash tables and BST s 我 至少 在优先级队列方面遇到了麻烦 因为它迫使我自己重做第一部分中已经实现的许多代码 该项目是关
  • 如何禁用基于 ValidationRule 类的按钮?

    如何禁用基于 ValidationRule 类的 WPF 按钮 下面的代码可以很好地突出显示 TextBox
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 调试错误:在 vc++ 项目中使用 COM 时发生 所需的运行时?

    我为我的工作创建了一个 COM 组件 我也注册了该组件 在我的系统上 我有两个虚拟机工作站 在我的第一个工作站中 它运行良好 在我的第二个工作站中 它显示一个包含消息的错误框该程序需要一段时间并以不寻常的方式关闭 请联系应用程序管理员 我认
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 如果仅使用第一个元素,是否必须为整个结构分配内存?

    我有一个结构 其中第一个元素被测试 并且根据其值 结构的其余部分将被读取或不会被读取 在第一个元素的值指示结构的其余部分不会被读取的情况下 我是否必须为整个结构或仅第一个元素分配足够的内存 struct element int x int
  • C - 获取外部IP地址

    我需要通过 C C 调用获取我的公共 IP 地址 我知道作为替代方案 我可以从 http whatismyip akamai com 等外部链接获取 我写了一个示例来获取外部IP地址 但我的程序没有返回外部 IP 地址 我正在获取内部 IP
  • 如何在控制台程序中获取鼠标位置?

    如何在 Windows 控制台程序中用 C 获取鼠标单击位置 点击时返回鼠标位置的变量 我想用简单的文本命令绘制一个菜单 这样当有人点击时 游戏就会注册它并知道位置 我知道如何做我需要做的一切 除了单击时获取鼠标位置 您需要使用 Conso
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d

随机推荐

  • xdebug 未加载。 apache重启后在phpinfo()中找不到

    我一直在搜寻我能找到的所有资源 但一无所获 当我启动调试会话时 我在 NetBeans 6 9 中收到可怕的 等待连接 消息 经过大量阅读后 大多数人都能够让 phpinfo 显示它加载了 xdebug 模块 我的情况并非如此 我使用此调用
  • 如何使用 Data Science Toolbox 对简单地址进行地理编码

    我厌倦了谷歌的地理编码 并决定尝试替代方案 数据科学工具包 http www datasciencetoolkit org http www datasciencetoolkit org 允许您对无限数量的地址进行地理编码 R 有一个优秀的
  • 使用 Python 进行令人尴尬的并行数据库更新 (PostGIS/PostgreSQL)

    我需要更新空间数据库中的每条记录 其中我有一个覆盖多边形数据集的点数据集 对于每个点要素 我想分配一个键以将其与其所在的多边形要素相关联 因此 如果我的点 纽约市 位于美国多边形内 并且对于美国多边形 GID 1 我将为我的点纽约市分配 g
  • 仅显示天数时间刻度

    我正在尝试从scaleTime的x轴上删除月份和年份刻度 但不知道是否可能 我尝试使用 tickFormat 方法 但无法访问月份和年份值 我只能通过将比例更改为 LinearScale 并手动格式化值来获得预期结果 有可能在时间尺度上得到
  • IEnumerable 可能的多重枚举吗? [复制]

    这个问题在这里已经有答案了 这是为什么 我该如何解决它 这里没有什么需要修复的 Any 将迭代枚举 但在第一个元素之后停止 之后返回 true 多重枚举主要在两种情况下出现问题 性能 通常 如果您希望避免多次迭代 可以 因为速度较慢 这不适
  • 使用python连接mysql并上传csv

    我是 python 新手 我想使用 mysql connector 和 python 连接到 mysql 我想打开 csv 然后将其上传到 mysql 数据库 我使用 python 版本 3 6 0 我已经尝试过这个 import csv
  • 将 ASP.Net Core 2 (.NET Framework) Web Api 拆分为类库和托管项目是否可能/明智?

    我正在尝试使用 Visual Studio 2017 v15 4 5 将现有的 WCF Web API 针对 NET Framework 4 6 1 移植到 ASP Net Core 2 但在找出组织项目的良好 通用 受支持的方法时遇到困难
  • 父子数据的 xslt 递归模板

    我正在尝试将我的注意力集中在 xslt 上 stackoverflow 帮助中的一些问题 XSLT 模板和递归 https stackoverflow com questions 2835567 xslt templates and rec
  • 如何在 MongoDB 中按 $elemMatch 排序?

    在我的 MongoDB 数据库中 我有一系列产品 每个产品都包含数组中的发布信息 例如 name foo release region GB active Y date ISODate 2012 03 01T00 00 00Z region
  • 将 JSON 发布到 Web API 2 时出错:此资源不支持请求实体的媒体类型“text/plain”

    我有这门课 public class MyClass public MyClass Secret Don t tell me public string Name get set public int Age get set public
  • 生成具有最小距离的随机 x 和 y 坐标

    R中有没有办法生成它们之间距离最小的随机坐标 例如 我想避免什么 x lt c 0 3 9 4 1 8 y lt c 1 4 1 3 9 7 plot x y 这是随机几何中的一个经典问题 空间中完全随机的点 其中落在不相交区域中的点的数量
  • 如何解析字符串并返回嵌套数组?

    我想要一个Python函数 它接受一个字符串 并返回一个数组 其中数组中的每个项目要么是一个字符 要么是另一个此类数组 嵌套数组在输入字符串中以 开头并以 结尾进行标记 因此 该函数的行为如下 1 foo abc a b c 2 foo a
  • Android 中不安全的蓝牙连接

    一位教授向我提出挑战 要求我在 Android 上开发一个小型蓝牙演示应用程序 直到两周前他向我提出这个挑战之前 我对 Android 开发一无所知 一般来说 我对 Java 编程也很陌生 所以我的起点还很远 但不管怎么说 所以我完成了大部
  • mousedown 事件的 if else if 语句

    我的目标是为每个单击的项目显示不同的对话框 我目前有一个设置 我想我可以添加一个 if 语句 如果将 mousedown 放在 div a dialog a 上 否则如果将 mousedown 放在 div b dialog b 等上 我是
  • .NET 正则表达式检查长度和非字母数字字符

    我需要 Regexp 来验证字符串的最小长度为 6 并且它至少包含一个非字母数字字符 例如 eN S u h9YI gt 4j 9YI 4j eN S usdf dfh9YI gt 4j ghffg 9YI 4j 这个运作良好 6 d 但在
  • 使用并行工具箱创建具有有限数量工作人员的任务/作业池(线程池)

    我想使用并行计算工具箱来加速一组相互不依赖的函数调用 为了提高效率 我想使用计时器函数 回调函数在我的函数之一完成执行后继续执行更多函数 我事先不知道哪些函数会更快 所以我不能将我的函数集分成几个池并将它们设置为并行 换句话说 我想要一些并
  • 通过 WCF 服务传递枚举

    我需要在与我的 WCF 服务项目分开的项目中定义一个枚举 我正在创建一个包含枚举和其他数据的对象 当我通过 WCF 服务将对象传递给客户端时 我得到一个未找到的信息 Enum public enum Color Red 1 Blue Gre
  • Terraform 上出现“无效的旧提供商地址”错误

    我正在尝试使用 terraform v0 14 3 部署 bitbucket 管道以在谷歌云中创建资源 运行 terraform 命令后 管道失败并出现以下错误 Error Invalid legacy provider address T
  • 如何防止滑动触发点击?

    I use 触摸滑动 http labs rampinteractive co uk touchSwipe demos 创建可滑动的图像列表 我将滑动事件绑定到图像 同时我还绑定了一个单击事件来打开图像的大版本 我的问题是 如果我滑动 它也
  • 什么是换行转换?

    当您尝试将值从一种类型转换为另一种不兼容的类型时 您会在 C 中收到以下错误 CS0039 无法通过引用转换 装箱转换 拆箱转换 包装转换或 null 类型转换将类型 A 转换为 B 我了解如何潜在地解决此问题 但我的问题是关于转换本身的类